J'utilise PHPUnit 3.4.9, mais j'ai des problèmes avec l'annotation @depends
. Cela fonctionne comme dans les exemples, mais se casse quand le producteur se repose sur un fournisseur. Je ne sais pas si cela est censé travailler ou non, mais mon code est essentiellement sous la forme:Le fournisseur PHPUnit ne fonctionne pas avec les dépendances
<?php
class StackTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider provider
*/
public function testEmpty ($data)
{
$stack = array();
$this->assertTrue(empty($stack));
return $stack;
}
/**
* @depends testEmpty
*/
public function testPush (array $stack)
{
array_push($stack, 'foo');
$this->assertEquals('foo', $stack[count($stack)-1]);
$this->assertFalse(empty($stack));
return $stack;
}
/**
* @depends testPush
*/
public function testPop (array $stack)
{
$this->assertEquals('foo', array_pop($stack));
$this->assertTrue(empty($stack));
}
public function provider()
{
return array(
// Some testing data here...
);
}
}
Le code ci-dessus est juste un exemple, mais montre ce que la structure de mon code est. Lorsqu'il est exécuté, il ignore les tests du consommateur, agissant comme si le producteur avait échoué. Je m'attends à ce que pour chaque ensemble de données de test dans le fournisseur, le producteur sera exécuté avec ces données, et tous ses consommateurs fonctionneront en conséquence.
Merci d'avoir répondu. Peu de temps après avoir posté, j'ai travaillé autour de cela en combinant tous les tests en un seul test, mais j'étais surtout curieux de savoir si c'était un comportement attendu ou non. Je vais prendre la vôtre comme réponse de toute façon. – rovaughn