Cetriolo e RSpec sono entrambi utilizzati per BDD ma hanno usi diversi.
Pensate cetriolo a descrivere ciò che accade dal punto di vista dell'utente, attraverso l'interazione con il browser web. Quindi puoi avere passaggi come:
Given I'm not logged in
When I login
Then I should be on the user dashboard page
Abbastanza ampio, ma c'è molto da fare sotto il cofano. Cucumber è utile per garantire che tutte queste funzionalità e funzionalità di alto livello siano coperte (ad esempio, quando l'utente effettua l'accesso, viene indirizzato alla pagina giusta). Ma non è un buon strumento per testare il codice di livello inferiore. Ecco dove arriva RSpec.
Prendi l'esempio di login sopra. Il tuo utente potrebbe accedere con un indirizzo email o nome utente. Probabilmente vuoi assicurarti che l'indirizzo email sia valido o che il nome utente abbia una certa lunghezza ... o che la cosa che stanno usando per accedere sia unica. Dovresti farlo nel tuo modello utente con una convalida.
E 'un esempio banale, ma questo è il genere di cose che ci si prova utilizzando RSpec (nel vostro/modelli file spec/user_spec.rb). Questo è non qualcosa che testare con Cucumber.
linea in modo di fondo è:
cetriolo per le prove di livello superiore che descrivono un'ampia funzionalità come visto dal punto di vista dell'utente
RSpec per le prove di livello inferiore che descrivono dettagli per il modo in cui il classi, metodi, modelli, regolatore , ecc. dovrebbe funzionare davvero
Questo post in realtà è davvero un ottimo lavoro di spiegare, quando per la transizione da uno strumento all'altro:
http://www.sarahmei.com/blog/2010/05/29/outside-in-bdd/
Ho anche consiglia "The RSpec Book" e "Rails Test Prescriptions" per buone risorse su entrambi gli strumenti e test in generale.
P.S. - Non confondere le cose, ma puoi usare RSpec per le cose di alto livello. Ma parte di questa decisione dipende dallo strumento che preferisci o dal fatto che tu stia lavorando o meno con un cliente non tecnico che trarrebbe maggior vantaggio dalla sintassi user-friendly di Cucumber per la descrizione degli scenari.
http://stackoverflow.com/questions/393622/rspec-vs-cucumber-rspec-stories –