У меня есть набор тестов, и я хочу проверить, что мои классы генерируют исключения в правильное время. В этом примере мой класс использует магический метод __get (), поэтому мне нужно проверить, возникает ли исключение при получении недопустимого свойства:
function testExceptionThrownWhenGettingInvalidProperty() {
$obj = new MyClass();
$this->setExpectedException("Property qwerty does not exist");
$qwerty = $obj->qwerty;
}
Класс выдает ошибку, как и должно, но вместо того, чтобы просто получить пропуск, исключение не перехватывается!
There was 1 error:
1) QueryTest::testExceptionThrownWhenGettingInvalidProperty
Exception: Property qwerty does not exist
Раньше я использовал SimpleTest и $ this-> expectException (new Exception («Свойство qwerty не существует»));
работал нормально. Я знаю, что есть и другие методы (@expectedException и try-catch), но этот должен работать и выглядит намного чище. Есть идеи, как я могу это сделать?