2013-02-21 16 views
40

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

5

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.

+7

Capybara non è specifico di ROR, può essere utilizzato per testare le app Web scritte in qualsiasi lingua. –

4

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.

86

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".

Problemi correlati