2013-02-21 2 views
40

Может кто-нибудь объяснить разницу между этими двумя платформами? Обе части BDD, но почему я должен использовать тот или иной компонент, или оба вместе? Спасибо за ответыОгурец против Capybara

ответ

5

cucumber - это инструмент BDD, который выражает тестовые сценарии на бизнес-языке, пригодном для ведения бизнеса.

capybara - это инструмент автоматического тестирования (часто используемый) для приложений ROR.

На странице capybara github есть пример на using capybara with cucumber.

+7

Capybara не относится к ROR, его можно использовать для тестирования веб-приложений, написанных на любом языке. –

4

Огурец - универсальный инструмент BDD. Он ничего не знает о веб-приложениях. Таким образом, определения уровня огурца называют Capybara для тестирования веб-приложений.

86

Capybara - это инструмент, который взаимодействует с сайтом так, как человеку (например, посещать URL-адрес, щелкая ссылку, вводить текст в форму и отправлять его). Он используется для эмуляции потока пользователя через веб-сайт. С Капибарой вы можете написать что-то вроде этого:

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 

Огурцов является инструментом для записи удобочитаемых тестов, которые отображаются в коду. С его помощью вы можете переписать приведенный выше пример, как это:

Scenario: Signup process 

Given a user exists with email "[email protected]xample.com" and password "caplin" 
When I try to login with "[email protected]" and "caplin" 
Then I should be logged in successfully 

Почти обычный текст интерпретации полезно обойти не-разработчиков, но и нужно некоторый код, отображенный в него на самом деле работать (определения шага).

Обычно вы используете Capybara, если вы тестируете сайт и используете Cucumber, если вам нужно поделиться этими тестами с не-разработчиками. Эти два условия независимы, поэтому вы можете использовать один без другого или обоих или ни одного.

PS: в фрагменте кода есть также RSpec. Это необходимо, потому что Cucumber или Capybara сами по себе не могут тест что-то. Они полагаются на RSpec, Test :: Unit или minitest, чтобы выполнить фактическую работу «Pass или Fail».

Смежные вопросы