Jak na @dataProvider v Nette\Tester
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Patrik Votoček
- Člen | 2221
Už nějakou dobu používám na unit testy PHPUnit chtěl jsem si zkusit něco napsat v Nette\Tester. Ale narazil jsem na pár věcí jednou z nich je setup (to se dá ale celkem snadno pořešit nějakou closure.
Na čem sem se ale tak trochu zasekl je že nevím jak elegantně pořešit dataProvider.
V PHPUnit to funguje následovně
class MyTest extends \PHPUnit_Framework_TestCase
{
public function dataFoo()
{
return array(
array(1, 2, 3),
array(2, 4, 6),
array(2, -2, 0),
);
}
/**
* @dataProvider dataFoo
*/
public function testFoo($a, $b, $result)
{
$this->assertEquals($result, $a + $b);
}
}
Metoda testFoo je pak automaticky zavolána více krát s různýmy parametry na základě dat z metod dataFoo.