Pregunta

Recientemente, he comenzado a trabajar en Email2SMS cuentan en nuestro producto. Cuando me uní al proyecto de este componente tenía cobertura de código cero por unidad de pruebas. código heredado.

Desde que empecé a trabajar en él, yo estaba utilizando el enfoque de prueba primero. Pero la calidad del código era muy baja. Fue muy difícil para dividirlo y pruebas de pequeños trozos por unidad de pruebas, por lo que decidió escribir prueba de integración.

No es script PHP, que acepta algo de información de mensajes, buscar en la DB de usuario y ahorrar algo de información si todo está bien.

$last_line = system('php emailtosms.php -file=unicode_message.txt ', $retval);

$this->assertStringExistsInLogFile('Email to SMS message was not sent');

¿Es malo o no? ¿Cómo resolver este problema?

¿Fue útil?

Solución

No es tan bueno.

Prueba en un nivel inferior, haciendo que el guión emailtosms.php como un simple envoltorio que procesa los argumentos de línea de comandos, y luego pasar a la clase más comprobable. Dependiendo de la etapa final, se podría escribir pruebas unitarias para hacer casi todos, pero el envío final (tal vez burlarse el paso final que realmente lo envía, y simplemente almacenarlo en una variable, a continuación, comprobar que tienes algo válido allí).

La integración final, corre el extremo a extremo completo de la clase, y comprobar su salida, mirando el registro final - o un poco más alto nivel, lo que se pone en para iniciar la sesión

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top