Я довольно новичок в использовании PHPUnit, и я пытаюсь использовать его более эффективно, используя поставщиков данных. Я могу заставить поставщиков данных работать при написании обычного тестового примера, однако я считаю, что переписываю код установки для нескольких тестовых кодов. Поэтому я пытаюсь расширить PHPUnit_Framework_TestCase классом BaseTestCase, который выполняет все мои общие настройки. Это работает, если я запускаю простой тест в тестовом примере, который расширяет мой класс BaseTestCase. Однако я не могу использовать @dataProvider при расширении моего класса BaseTestCase.Расширение PHPUnit_Framework_TestCase при использовании dataProviders
Так что моя установка:
class BaseTestCase extends PHPUnit_Framework_TestCase{
public static function setUpBeforeClass(){
//do setup
//this is getting called and it works
}
}
class myTest extends BaseTestCase{
public function myBasicTest(){
//this works
$this->assertEquals(2, 1+1);
}
public function myProvider(){
return [
[1,1,2],
[1,2,3],
[1,4,5],
]
}
/**
* @dataProvider myProvider
*/
public function testMyProvider($a, $b, $result){
//this doesn't work, the provider never gets called
//this would normally work if I extended PHPUnit_Framework_TestCase
$this->assertEquals($result, $a+$b);
}
}
Я знаю, что провайдеры получают побежали перед любым из установки делает так мне интересно, если PHPUnit не знает, что провайдер существует из-за наследство , В любом случае, кто-нибудь знает, возможно ли то, что я пытаюсь сделать, или у PHPUnit есть другой способ решения этих ситуаций?
Спасибо за вашу помощь,
Jordan
Получается, что это не проблема. См. Ответ ниже. – Jordan