Qualcuno può spiegare la differenza tra tra queste due piattaforme? Sono entrambi parte di BDD ma perché dovrei usare l'uno o l'altro o entrambi insieme? Grazie per le risposteCucumber vs Capybara
risposta
cucumber è uno strumento BDD che esprime scenari di test in un linguaggio specifico del settore leggibile dal business.
capybara è uno strumento di test automatico (spesso utilizzato) per applicazioni ROR.
Nella pagina di github capybara, c'è un esempio su using capybara with cucumber.
Il cetriolo è uno strumento BDD generico. Non sa nulla di app web. Quindi le definizioni dei passi di Cucumber chiamano Capybara per testare le app web.
Capybara è uno strumento che interagisce con un sito Web come un essere umano (come visitare un URL, fare clic su un collegamento, digitare il testo in un modulo e inviarlo). È usato per emulare il flusso di un utente attraverso un sito web. Con Capybara è possibile scrivere qualcosa del genere:
describe "the signup process", :type => :feature do
before :each do
User.make(:email => '[email protected]', :password => 'caplin')
end
it "signs me in" do
visit '/sessions/new'
within("#session") do
fill_in 'Login', :with => '[email protected]'
fill_in 'Password', :with => 'password'
end
click_link 'Sign in'
page.should have_content 'Success'
end
end
cetriolo è uno strumento per scrivere i test leggibili che vengono mappati in codice. Con esso, è possibile riscrivere l'esempio precedente come questo:
Scenario: Signup process
Given a user exists with email "[email protected]" and password "caplin"
When I try to login with "[email protected]" and "caplin"
Then I should be logged in successfully
Il testo normale quasi interpretazione è utile per passare intorno non sviluppatori, ma anche bisogno di qualche codice mappato in esso per lavorare in realtà (le definizioni di passo).
In genere si utilizzerà Capybara se si sta testando un sito Web e si utilizza Cucumber se è necessario condividere tali test con i non sviluppatori. Queste due condizioni sono indipendenti, quindi puoi usarne una senza l'altra o entrambe o nessuna.
PS: nello snippet di codice c'è anche qualche RSpec. Questo è necessario perché Cucumber o Capybara non possono effettuare autonomamente il test . Si affidano a RSpec, Test :: Unit o minitest per eseguire il lavoro "Pass o Fail".
- 1. Perché ottengo il metodo non definito `clic 'per Cucumber :: Rails :: World? in passi Cucumber/Capybara
- 2. Rails + Cucumber/Capybara: come impostare/recuperare i cookie nei test?
- 3. Come testare il caricamento di più file usando Cucumber/Capybara?
- 4. Debug di jQuery Ajax in Cucumber + Capybara + PhantomJS in Rails
- 5. Rails 3 Cucumber Load Error
- 6. Cucumber BeforeStep
- 7. Il selenio non funziona con Cucumber/Capybara (fuori dalla scatola) - MacOSX
- 8. Come testare il caricamento di Dropzone.js con Rails, Cucumber e Capybara?
- 9. Come si esegue una ricerca regolare sull'espressione xpath nella definizione del passo Cucumber/Capybara (Rails 3)?
- 10. cetriolo capybara come funziona
- 11. "richiede 'capybara/rails'" restituisce "Costante non inizializzata Rack :: Builder"
- 12. Rake stats e Cucumber
- 13. Come includere Capybara nel modulo nel progetto Cetriolo
- 14. Rails3, cetriolo, Capybara, caricati File => corpo contenuto inappropriato (EOFError)?
- 15. Test di stress con Cucumber
- 16. Dati dinamici in tabelle Cucumber
- 17. Problema di pulizia del database con il webkit Capybara
- 18. Capybara e cetriolo | Come i biscotti
- 19. Cetriolo Capybara scorrere fino alla fine della pagina
- 20. Come inserire capybara in html in una cartella specifica?
- 21. È possibile fare uno screenshot dell'intera pagina con Selenium/Capybara?
- 22. vcr con capybara-webkit
- 23. Capybara Connection Refused
- 24. Test fuoco con Capybara
- 25. Buone fonti per imparare Cucumber e RSpec?
- 26. Utilizzo di VCR con Cucumber tramite tag
- 27. Cucumber Background e persistenti scenari (o prerequisiti)
- 28. Test Highcharts (libreria JS charting) con Cucumber
- 29. Passaggi di pulitura per scenari Cucumber
- 30. Come si differenzia Cucumber da JUnit?
Capybara non è specifico di ROR, può essere utilizzato per testare le app Web scritte in qualsiasi lingua. –