2012-01-13 21 views
17

He estado aprendiendo TDD/BDD usando MiniTest. Lo que intento averiguar es qué partes de mi código deben probarse con MiniTest :: Unit :: TestCase y qué partes deben probarse usando MiniTest :: Spec.¿Cuándo uso MiniTest :: Unit :: TestCase versus MiniTest :: Spec?

Entiendo la diferencia entre pruebas unitarias y pruebas de integración, lo que no puedo entender de ejemplos en toda la web es si un TestCase y un Spec son pruebas unitarias o si se usa un TestCase para una unidad prueba y una especificación utilizada para las pruebas de integración?

¿Debo mantener mis pruebas de unidades rápidas en las clases MiniTest :: Unit :: TestCase y las pruebas de integración más largas, que describen con más frecuencia las características, en las expectativas de MiniTest :: Spec? ¿Incluso importa, o es una cuestión de preferencia personal?

Respuesta

4

Si uso MiniTest::Unit (con assertions) contra MiniTest::Spec, lo determina quién los escribo.

Para el código me escribo, sin ningún requisito de "cliente", utilizaría MiniTest :: Unit. Las pruebas tienen sentido para mí y leerlas es escueto y al grano.

Si estoy escribiendo código para un cliente que tiene una lista de requisitos, usaría MiniTest :: Spec. Los archivos de especificaciones son más legibles para un programador no.


Nota: Minitest fue sometido a una revisión general del año pasado por lo que algunos de los nombres de los módulos cambiado, pero la idea es la misma, Minitest apoya de una manera más concisa, o más detallado, de las pruebas de la unidad de escritura.

+0

¿Son esencialmente dos formas diferentes de hacer lo mismo? Simplemente sintácticamente diferente ...? – Mohamad

+0

Bastante. Hay varios "idiomas" diferentes para escribir pruebas unitarias, y se reducen a diferentes formas de decir lo mismo. Agregan diferentes niveles de verbosidad, dirigidos a diferentes tipos de personas. A los desarrolladores les gusta la concisión de las pruebas de unidades genéricas con aserciones. Para los gerentes de proyectos y/o clientes que no "hablan de programación", Spec funciona mejor, o usa algo que dice las mismas cosas en términos más comunes. –

Cuestiones relacionadas