PHPUnit setUp для запуска отдельного теста с dataProvider

У меня есть тест PHPUnit testFoo() с провайдером данных fooProvider(), В начале testFoo() Я использую Runkit для переопределения метода, чтобы я мог проверить ожидаемые результаты, когда этот метод возвращает то, что я переопределил, чтобы он возвращал. Однако переопределение метода занимает немного времени, поэтому я бы хотел, чтобы в этом тесте это происходило только один раз.

Предоставляет ли инфраструктура PHPUnit функциональность для определения кода, который я хотел бы запустить только один раз перед testFoo() работает и не один раз для каждого элемента, возвращаемого fooProvider() или один раз за тест в комплекте (как с setUp())?

3

Решение

Используйте статическое частное свойство, чтобы указать, что метод был переопределен. Вам нужно, чтобы он был статическим, поскольку экземпляр класса теста создается для каждого случая, предоставляемого dataProvider.

class FooTest extends PHPUnit_Framework_TestCase
{
private static $redefined = false;

/**
* @dataProvider fooProvider
*/
public function testFoo()
{
if (! self::$redefined) {

// redefinition code goes here

self::$redefined = true;
}
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]