unitarias tutorial pruebas example php unit-testing tdd phpunit

tutorial - ¿Cómo indicar que se espera que falle una prueba de PHPUnit?



phpunit tutorial (5)

¿Es posible marcar una prueba como "se espera que falle" con PHPUnit? Esto sería útil cuando se realiza TDD, y usted quiere distinguir entre las pruebas que realmente fallaron, y las pruebas que fallan porque el código asociado aún no se ha escrito.



El comentario de sesenta y nueve arriba es casi perfecto para lo que estaba buscando.

El método fail () es útil para cuando establece una prueba para una excepción esperada y si no activó la excepción, quiere que la prueba falle.

$this->object->triggerException(); $this->fail(''The above statement was expected to trigger and exception.'');

Por supuesto, la triggerException es reemplazada por algo en su objeto.



Realmente creo que es una mala práctica, sin embargo, puedes engañar a PHPUnit de esta manera:

/** * This test will succeed !!! * @expectedException PHPUnit_Framework_ExpectationFailedException */ public function testSucceed() { $this->assertTrue(false); }

Más limpiamente:

public function testFailingTest() { try { $this->assertTrue(false); } catch (PHPUnit_Framework_ExpectationFailedException $ex) { // As expected the assertion failed, silently return return; } // The assertion did not fail, make the test fail $this->fail(''This test did not fail as expected''); }


Si desea que una prueba falle, pero sabe que se esperaba que fallara, puede agregar un mensaje a la aserción que arrojará los resultados:

public function testExpectedToFail() { $this->assertTrue(FALSE, ''I knew this would happen!''); }

En los resultados:

There was 1 failure: 1) testExpectedToFail(ClassTest) I knew this would happen!