Tanımsız bir dizide bir değer erişirken neden benim senaryom bir haber tetiklemek değildir?

0 Cevap php

Şöyle bir test yöntemi var:

$row = $this->GetRowFromUserTable($id);
$this->assertLessThan(time(), time($row['last_update']));

$ Satır null olduğunda, $ row ['last_update'] erişim bir E_NOTICE tetiklemesi gerektiğini ve bu test başarısız gerekir, ama öyle değil.

Bu kod ilk assert başarısız, ben $ satır (fikstür aynı) boş olduğunu biliyorum:

$row = $this->GetRowFromUserTable($id);
$this->assertNotNull($row);
$this->assertLessThan(time(), time($row['last_update']));

Bu yazarken:

$row = $this->GetRowFromUserTable($id);
$this->assertEquals(E_ALL, error_reporting());
$this->assertLessThan(time(), time($row['last_update']));

o başarılı, bu yüzden de error_reporting doğru ve bu durum PHPUnit ile ilgisi olması gerekir eminim.

Ben phpunit 3.5.6 kullanabilirsiniz

I read this question: Can I make PHPUnit fail if the code throws a notice? but the answer suggests to use newer version of PHPUnit, but that answer is from 2009, so it's not it.

EDIT: Ben testini çalıştırmak için NetBeans IDE 6.9.1 kullanabilirsiniz.

0 Cevap