Так что я использую PHPUnit для тестирования. Попытка использовать DataProvider с одним из моих тестов.С помощью PHPUnit, используя поставщик данных, последний набор данных всегда показывает «Случай теста был неожиданно завершен»
/**
* Tests Events_Event->Events_Event()
* @dataProvider provider
*/
public function testEvents_Event($Name, $param, $time) {
//$this->assertInstanceOf("Events_Event", $this->Events_Event->Events_Event("test2", array()));
$this->assertTrue(true);
}
public static function provider()
{
return array(
array("test", array("Like a boss"), "Cheack the time"),
array("test2", array("Like a boss"), "9:00"),
array("test3", array("Time to go home"), "4:00"),
array("test3", array("Time to go home"), "4:00")
);
}
Результаты:
testEvents_Event with data set#0
testEvents_Event with data set#1
testEvents_Event with data set#2
testEvents_Event with data set#3: The test case was unexpectedly terminated
Это происходит на последних данных, не установленных независимо от того, сколько есть и будет ли или нет последний набор данных действительными нет. Как вы можете видеть, мы упростили тест до простого $this->assertTrue(true)
, и он все еще дает нам ошибку.
Что нам нужно сделать, чтобы заставить Data Provider работать?
В случае, если это важно, я работаю с PHPUnit внутри Zend Studio 9.0.3, я проверил наличие обновлений, и он говорит мне, что все в актуальном состоянии.
Запустите эти тесты локально с включенным xdebug и выполните код за строкой, пока не дойдете до бит, выбрасывающего эту ошибку. Сроки, но единственный способ узнать в отсутствие каких-либо других подсказок. Помог бы grep код PHPUnit для строк, которые имеют этот текст ошибки, затем установите там точку останова, и когда она остановится, используйте stacktrace, чтобы увидеть, где это нужно. –
Попробуйте обновить PHPUnit до последней версии – Gordon
@MattGibson Я действительно надеюсь получить ответ, не получив этого грязного. Но определенно хороший подход, если я не могу никуда с поиском Google. – Chris