¿Cómo escribir una aserción PHPUnit personalizada que se comporte como una aserción incorporada?
¿Cómo puedo escribir una aserción personalizada, comoassertFoo($expected, $actual)
, ¿se comporta como las aserciones integradas con respecto al error "seguimiento de pila"?
Actualmente tengo el siguiente método definido (dentro de una clase que se extiendePHPUnit_Framework_TestCase
):
public static function assertFoo($expected, $actual) {
self::assertEquals($expected, $actual);
}
Si llamo a esto desde una prueba y la prueba falla, obtengo dos elementos en 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 dondeassertFoo()
llama a la incorporadaassertEquals()
y falla; la línea 136 está ahíassertFoo()
se llama.
Si cambio la prueba para llamarassertEquals()
directamente, solo consigo uno:
1) PreferencesTest::testSignupTeacher
Failed asserting that 3 is true.
/vagrant/myproject/tests/integration/PreferencesTest.php:136
Hay algodocumentación en el manual, pero no parece cubrir esto.