¿Cómo puedo escribir una afirmación personalizada, como assertFoo($expected, $actual)
, que se comporta como las aserciones incorporadas con respecto al error "stack trace"?¿Cómo escribir una aserción PHPUnit personalizada que se comporte como una aserción incorporada?
que actualmente tiene definido el siguiente método (dentro de una clase que se extiende PHPUnit_Framework_TestCase
):
public static function assertFoo($expected, $actual) {
self::assertEquals($expected, $actual);
}
Si llamo a esto desde una prueba y la prueba falla, consigo dos elementos de la pila de llamadas:
1) PreferencesTest::testSignupTeacher
Failed asserting that 5 matches expected 3.
/vagrant/myproject/tests/integration/PreferencesTest.php:17
/vagrant/myproject/tests/integration/PreferencesTest.php:136
La línea 17 es donde assertFoo()
llama al assertEquals()
incorporado y falla; línea 136 allí assertFoo()
se llama.
Si cambio de la prueba para llamar directamente assertEquals()
, solo me dan una:
1) PreferencesTest::testSignupTeacher
Failed asserting that 3 is true.
/vagrant/myproject/tests/integration/PreferencesTest.php:136
Hay un poco de documentation in the manual, pero no parece cubrir esto.
Puede mostrar el código de su función assertFoo(). –
@DarrenCook Seguro, actualizado. – mjs