2010-07-24 7 views
13

Estoy buscando un tutorial que explica por qué y cómo para escribir pruebas de unidades útiles. Específicamente, estoy interesado en PHPUnit, sin embargo, cualquier más general podría ser una buena explicación. Tenga en cuenta que No estoy buscando información técnica sobre cómo utilizar PHPunit - ¡sino el tutorial sobre la forma de pensar!PHPUnit tutorial? ¿O un tutorial de pruebas unitarias más general que valga la pena recomendar?

+2

He estado viendo este hilo por días, ya que este es un tema en el que estoy muy interesado. Triste por ver la falta de respuestas ... hay tantas opiniones diferentes que esperaba una pelea de bollo real. Por ejemplo, he visto a un tipo dando una charla diciendo que odiaba los simulacros: su sensación general era que la mayoría de las veces sentía que estaba probando el simulacro, no el código. ¡Venga! ¡Discutir! – James

Respuesta

5

No conozco un tutorial. Pero puedo darle mi punto de vista de lo que he reunido a lo largo de los años.

Los Tests de la unidad de escritura están destinados a probar la funcionalidad de la aplicación. Por lo tanto, dado esto, digamos que escribe una clase principal que tiene 3 funciones, getData setData y displaydata (simplemente pensando en la parte superior de mi cabeza). Desea escribir un caso de unidad que entre en los datos del conjunto (pasa datos buenos y malos porque es importante saber que los errores son correctos). Luego, verifica setData, ya sea a través de una llamada a DB o con la misma clase utilizando getData, e intentas obtener los datos con datos incorrectos, buenos datos, etc. Asegúrate de que esto se maneje correctamente. Luego, escribe los datos de la pantalla y enjuaga y repite.

Básicamente, desea probar que la clase principal (o clases de aplicación) maneja los datos correctamente (errores/datos correctos, etc.). Si todas las pruebas salen limpias, puede avanzar y escribir una prueba para otras clases que usen esa clase principal. Pero no tiene sentido seguir adelante si su clase central no/no pasa las pruebas o si la depuración se convierte en una yegua nocturna. Nunca he examinado realmente la prueba de Unidad PHP, solía escribir todos los escenarios de caso de uso dados en la mina (IE: cómo se usarían/​​implementarían las funciones). Esta es una forma general de pensar para qué escribir un caso de prueba.

Espero que esto ayude.

2

He escrito una presentación que cubre solo eso como una introducción. Es de esperar que funciona sin las notas del orador:
http://www.scribd.com/full/34941838?access_key=key-1u9c5kmupy1889f4o6tv (esto es en realidad sigue siendo una revisión temprana, cualquier comentario que podría dar yo estaría valorada :)

Se inspira en gran medida del libro "Patrones de prueba xUnit: Código de prueba Refactoring " http://rcm.amazon.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=alex010-20&o=1&p=8&l=as1&m=amazon&f=ifr&md=10FE9736YVPPT7A0FBG2&asins=0131495054"

busque también en las presentaciones por Sebastián Bergmann el creador de PHPUnit http://talks.php.net/index.php/Testing

Si puede pagar el libro, sería mi recomendación número uno para aprender acerca de los patrones de pensamiento de las pruebas de Unidad.

último (o tal vez como después de pensamiento) sus próximos pasos en levantarse a las 'normas profesionales' en control de calidad se beneficiarían de pasar por el

American Society for Quality:http://www.asq.org/

Con el compra de una membresía (de aproximadamente $ 50 a $ 150 USD), puede inscribirse en cursos y obtener la certificación de QA.

Además, los materiales de su curso de estudio (costo desconocido) se pueden enviar a su lugar de trabajo para que pueda estudiar por su cuenta, escribir un examen, obtener la certificación y capacitar a otros en QA.

Realmente espero que ayude. - Alex

0

El sitio oficial de PHPUnit también está teniendo buenos ejemplos y todos los qué y los cómo.

Tenga una mirada en it

0

estoy empezando a aprender a utilizar correctamente y TDD Actualmente estoy usando PHPUnit. No puedo exagerar lo suficiente como me ha ayudado el trabajo del Tío Bob (Robert C. Martin). Tengo la suerte de tener una compañía que haya proporcionado los videos. Pero su trabajo con 'Clean Code' es increíble.

En los videos usa un 'límite' para alternar entre las diferentes etapas de TDD (Rojo> Verde> Refactor) y describe las etapas con gran detalle. También estoy usando TDD Kata's para mejorar mis habilidades mentales en PHP y TDD. Creo que la mentalidad no es algo a lo que los codificadores están acostumbrados. Como codifica para corregir una prueba que falla, cree que pequeño en lugar de grande. Segregar la tarea específica que estás haciendo con el código evita que te desvíes demasiado. En un momento dado, usted está codificando para pasar una prueba, pasar una prueba o refactorizar su código, nunca en ningún punto intermedio. Y debido a que es pequeñas iteraciones, creo que se sienta mejor con el desarrollador, ¡lo hace conmigo!

Debo recalcar que soy un desarrollador aficionado y acabo de comenzar (de hecho esta es mi primera publicación). En mi opinión, el primer enfoque de prueba funciona muy bien. Te obliga a escribir código modular, porque tiene que ser probado. Usted, a su vez, escribe un código que se adhiere a los principios SÓLIDOS.

Vaya fácil conmigo. Todavía estoy aprendiendo :)