Diferencias entre prueba vs especificaciones

12

Tengo un problema conceptual en este momento y no puedo encontrar ninguna información sobre las diferencias entre Test (UnitTest, etc.) vs Spec (Rspec, etc.).

Hasta donde yo sé, las especificaciones están en las pruebas de integración y la prueba está en UnitTest, pero eso es todo.

¿Puedes explicar cuáles son las diferencias?

DFOXpro
fuente

Respuestas:

12

Mira el siguiente diagrama. Ilustra la relación entre Test-Driven Development (TDD) y Acceptance Test-Driven Development (ATDD):

Diagrama de desarrollo basado en pruebas de aceptación

Observe que el bucle interno, TDD, está envuelto por el bucle externo, ATDD. Los requisitos (ilustrados en el cuadro Criterios de aceptación) impulsan la creación de pruebas de aceptación automatizadas, que a su vez impulsan la creación de pruebas unitarias para su implementación.

En general, RSpec se usaría en aquellas situaciones en las que desea expresar las pruebas de una manera amigable para los analistas de negocios, es decir, la creación de pruebas de aceptación automatizadas (el círculo marrón); mientras que los marcos de prueba unitaria como nUnit son más especializados para el tipo de pruebas unitarias escritas desde la perspectiva TDD del desarrollador a nivel de implementación (el círculo amarillo).

Robert Harvey
fuente
Un buen ejemplo es una tabla hash, que necesita pruebas unitarias detalladas, ya que se espera que funcione para todas las entradas posibles, no solo para el pequeño conjunto de ejemplos en las pruebas de aceptación. Sin embargo, es probable que el código que calcula el descuento para un "buen" cliente esté bien cubierto por las pruebas de aceptación, por lo que es posible que no se necesiten o se realicen pocas pruebas unitarias.
Ian
3

ok, tenemos algunos términos diferentes aquí, así que aquí está lo que está pasando

  • Tenemos pruebas unitarias. Otros niveles son pruebas de integración, pruebas de rendimiento, etc.
  • rspec se puede usar para muchos de los niveles de prueba anteriores, por ejemplo, contra modelos, controladores y vistas a través de las pruebas de características de Capybara.
  • la palabra 'especificación' proviene de la especificación que está en el corazón de una prueba: especifica algo.
  • rspec: un marco utilizado para probar los navegadores agaist, que se usa con frecuencia con las aplicaciones de Ruby on Rails.
  • archivos de especificaciones: el archivo rspec generalmente termina en _spec.rb y con frecuencia se denominan archivos de especificación.
Michael Durrant
fuente