Tener varias afirmaciones en la misma prueba está bien, pero cuando una afirmación falla, toda la prueba se aborta y otras afirmaciones en la misma prueba no se prueban.
Dependiendo de lo que pruebe y de cómo lo haya codificado, es posible que desee dividir algunas pruebas en varias subpruebas.
OverAssertive es una extensión PHPUnit que informa directamente en la consola qué pruebas tienen "demasiadas" afirmaciones, donde "demasiadas" es lo que usted define, para ayudarle a inspeccionar y tal vez refactorizar algunas pruebas.
Habilítelo con todos los valores predeterminados agregando lo siguiente al archivo phpunit.xml
de su conjunto de pruebas:
<phpunit bootstrap="proveedor/autoload.php"> ... <oyentes> <listener class="OzhPHPUnitListenerOverAssertiveTestsListener" /> </oyentes> </phpunidad>
Si no está utilizando un cargador automático, también puede especificar la ubicación de la biblioteca:
<phpunit bootstrap="boostrap.php"> ... <oyentes> <listener class="OzhPHPUnitListenerOverAssertiveTestsListener" file="/path/to/OverAssertiveTestsListener.php" /> </oyentes> </phpunidad>
Ahora ejecute su conjunto de pruebas como de costumbre. OverAssertive informará sobre las pruebas asertivas en la consola una vez que se complete la suite.
OverAssertive tiene dos parámetros configurables:
alertThreshold : número de aserciones que harán que una prueba sea demasiado asertiva (predeterminado: 10 aserciones)
reportLength : número de pruebas excesivamente asertivas incluidas en el informe (predeterminado: 10 pruebas)
Estos parámetros de configuración se establecen en phpunit.xml
al agregar el oyente:
<phpunit...><!--... otra configuración de suite aquí... --><oyentes> <listener class="OzhPHPUnitListenerOverAssertiveTestsListener"> <argumentos> <matriz> <elemento clave="alertaUmbral"> <entero>10</entero> </elemento> <elemento clave="longituddelinforme"> <entero>10</entero> </elemento> </matriz> </argumentos> </escucha> </oyentes> </phpunidad>
Muchas gracias a phpunit-speedtrap
Haz lo que quieras.