2011-01-23 9 views
9

Estoy tratando de entender la necesidad de Steak. Entiendo que es como Pepino, excepto que puedes usar rubí puro en lugar de mapear tus especificaciones de idioma inglés a Ruby como en Cucumber, , pero dice que principalmente agrega un envoltorio alrededor del DSL de RSpec, y te permite usar ese¿Qué agrega Steak más allá del uso de Capybara y RSpec en las pruebas de Rails?

tomado de: http://jeffkreeftmeijer.com/2010/steak-because-cucumber-is-for-vegetarians/

module Spec::Example::ExampleGroupMethods 
    alias scenario example 
    alias background before 
end 

module Spec::DSL::Main 
    alias feature describe 
end 

¿eso es todo? Me parece por los ejemplos que todavía hace el trabajo pesado con los matchers de Capybara y RSpec ... Entonces, ¿por qué no simplemente usar Capybara con RSpec en lugar de agregar una complicación como Steak en la parte superior? ¿Son las descripciones de las especificaciones de aceptación del idioma inglés la única proposición de valor, o me falta algo más?

Gracias

Respuesta

19

Técnicamente filete hablando sólo añade tres cosas:

  • Algunos azúcar sintáctica en forma de alias (escenario, fondo, de función) que recuerdan a los desarrolladores que están escribiendo una aceptación especificación, no una regular.

  • Un par de generadores convenientes de rieles que ayudan a los desarrolladores a configurar rápidamente un nuevo proyecto o una nueva especificación

  • Rake apoyo para ejecutar las especificaciones de su aceptación en el aislamiento, entre otras cosas.

Puede pensar en Steak como una extensión mínima de RSpec. Pero aún más importante que las cosas técnicas son las cosas no técnicos asociados a Steak:

  • Proporciona un nombrepara hacer la aceptación de BDD con RSpec. Decir que usas Steak es más breve que explicar qué tipo de prueba practicas.

  • Proporciona una comunidad (lista de correo, wiki, cuenta de twitter ...) de desarrolladores que realizan esta forma particular de prueba, compartiendo experiencias, problemas y mejores prácticas.

No creo filete añade ningún tipo de complicación para cualquiera que esté familiarizado con RSpec, pero si usted piensa así y que realmente no se preocupan por todas las cosas anteriores, entonces no es necesario utilizar RSpec en absoluto , probablemente serás más feliz usando solo Test :: Unit + Capybara.

2

Su corazonada es posiblemente correcta y Steak confunde aún más el espacio de nombres de la prueba rSpec.

El directorio de 'aceptación', por ejemplo, implica que está realizando pruebas de aceptación con bistec, lo que rara vez es el caso y generalmente es la razón por la que utiliza Steak sobre pepino.

Para una definición más clara, véase: http://en.wikipedia.org/wiki/Acceptance_testing

Ya que descartan el pepino y el uso de RSpec, que suele ser no conocido como DSL que las partes interesadas/analistas no técnicos de lectura, un ajuste más preciso podría ser la prueba de integración :

http://en.wikipedia.org/wiki/Integration_testing

Estamos eliminación gradual de carne en favor de rSpecs 'solicitud' nativo y especificaciones 'característica', que son esencialmente la misma cosa fuera de la caja. Puede valer la pena revisarlos.

https://www.relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec https://www.relishapp.com/rspec/rspec-rails/docs/feature-specs/feature-spec

Cuestiones relacionadas