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
+
0
-

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.

Filip Procházka
Moderator | 4668
+
0
-

Tohle taky vydatně používám.