Mam jedną metodę badawczą, która zależy od innej metody, która sama korzysta z usług transmisji danych w PHPUnit:Łączenie zależnościami z dostawcami danych
/**
* @dataProvider getFields
*/
public function testCanDoSomeStuff($parm1, $parm2) {
$result = my_func($parm1, $parm2);
$this->assertNotNull($result);
return $result;
}
/**
* @depends testCanDoSomeStuff
*/
public function testCanDoSomeMoreStuff($result) {
$this->assertNotNull($result);
}
Mam też funkcję dostawcy getFields()
danych, nie ma potrzeby, aby pokazać, że tutaj.
Pierwszy test, który opiera się na przekazach danych - $result
NIE ma wartości NULL.
Oczekuję, że wynik testu zostanie przekazany do testu zależnego jako parametr $result
. Jednak funkcja testCanDoSomeMoreStuff
odbiera parametr NULL
, a test kończy się niepowodzeniem.
Aktualizacja
Ten prosty sprawdzian demonstruje problem:
class MyTest extends PHPUnit_Framework_TestCase {
/**
* @dataProvider myFunc
*/
public function testCanDoSomeStuff($value) {
$this->assertNotNull($value);
return $value;
}
/**
* @depends testCanDoSomeStuff
*/
public function testCanDoSomeMoreStuff($value) {
$this->assertNotNull($value);
}
/**
* Data provider function
*/
public function myFunc() {
$values = array('22');
return array($values);
}
}
jako obejście do teraz, mam zapisany wynik w nieruchomości statycznego pomiędzy testami.
Czy wypróbowałeś 'print_r ($ results);' aby sprawdzić, co jest przekazywane do 'testCanDoSomeMoreStuff()'? – uzyn
Hi Uzyn, tak - minęło zero. Wydrukowałem także wynik wywołania funkcji "my_func", która nie jest pusta. – iainp999
Twój kod wygląda dobrze dla mnie. Być może zechcesz podzielić się swoim faktycznym kodem, bo w rzeczywistości mogą występować błędy. – uzyn