que tienen un método de prueba que depende de otro método que en sí utiliza un proveedor de datos en PHPUnit:dependencias combinación con los proveedores de datos
/**
* @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);
}
que también tienen una función de proveedor de datos getFields()
, no hay necesidad de demostrar que aquí.
La primera prueba que se basa en los pases del proveedor de datos - $result
NO es nula.
Espero que el resultado de la prueba se pase a la prueba dependiente como el parámetro $result
. Sin embargo, la función testCanDoSomeMoreStuff
recibe un parámetro NULL
y la prueba falla.
actualización
Este caso simple prueba demuestra el problema:
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);
}
}
Como solución por ahora, me he guardado el resultado en una propiedad estática entre las pruebas.
¿Has probado 'print_r ($ results);' para ver qué se está pasando a 'testCanDoSomeMoreStuff()'? – uzyn
Hola Uzyn, sí, se está aprobando el nulo. También imprimí el resultado de la llamada a 'my_func', que no es nulo. – iainp999
Tu código me parece bien. Quizás desee compartir su código real, puede haber algunos errores en el real. – uzyn