У меня есть метод теста, который выглядит следующим образом:
$row = $this->GetRowFromUserTable($id);
$this->assertLessThan(time(), time($row['last_update']));
Когда $ row равен нулю, доступ к $ row ['last_update'] должен вызвать E_NOTICE, и этот тест должен завершиться неудачей, но он не't.
Этот код не выполняется при первом утверждении, поэтому я знаю, что $ row равно нулю (фиксатор тот же):
$row = $this->GetRowFromUserTable($id);
$this->assertNotNull($row);
$this->assertLessThan(time(), time($row['last_update']));
Когда я пишу это:
$row = $this->GetRowFromUserTable($id);
$this->assertEquals(E_ALL, error_reporting());
$this->assertLessThan(time(), time($row['last_update']));
это успешно, поэтому я также уверен, что error_reporting верен, и эта ситуация должна иметь отношение к PHPUnit.
Я использую PHPUnit 3.5.6
Я прочитал этот вопрос: Могу ли я заставить PHPUnit потерпеть неудачу, если код выдает уведомление? , но в ответе предлагается использовать более новую версию PHPUnit, но это ответ 2009 года, так что это не так.: Я использую среду IDE NetBeans 6.9.1 для запуска своего теста.