Подтвердить что ты не робот

Огурец против Капибары

Может кто-нибудь объяснить разницу между этими двумя платформами?

Являются ли оба BDD но почему я должен использовать один или другой, или оба вместе?

4b9b3361

Ответ 1

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

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]" and password "caplin"
When I try to login with "[email protected]" and "caplin"
Then I should be logged in successfully

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

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

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

Ответ 2

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

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

На странице capybara github есть пример с использованием capybara с огурцом.

Ответ 3

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

Ответ 4

|-------------------------------|-------------------------------|
|      Cucumber                 |     Capybara                  |
|-------------------------------|-------------------------------|
| Test cases are more readable  | Test cases are not readable;  |
| and written in plain english  | Capybara also wraps RSpec and |
| text as a DSL                 | you follow the same pattern to|
|                               | write test cases              |
|-------------------------------|-------------------------------|
| Easy to iterate data using    | Not easy to iterate data      |
| tables                        |                               |
|-------------------------------|-------------------------------|
| Cucumber has its own runner   | Uses RSpec runner to execute  |
|                               | tests                         |
|-------------------------------|-------------------------------|
| Default HTML reporter         | No default HTML reporter      |
|-------------------------------|-------------------------------|
| Need to learn cucumber regex  | No such concept               |
| pattern to write step-        |                               |
| definition which is the middle|                               |
| man for test case and script. |                               |
| Btw, the regex pattern is not |                               |
| essential for all cases.      |                               |
|-------------------------------|-------------------------------|
| You can use the native        | (Wrapper)/Built on top of     |
| selenium-webdriver methods    | selenium-webdriver ruby       |
| while using Cucumber; Cucumber| library when used with        |
| is just an additional         | selenium; it can also be used |
| framework to your generic     | with two other drivers.       |
| automation framework          |                               |
|-------------------------------|-------------------------------|
| Pure BDD framework (In theory | Traditional functional test   |
| BDD sounds great. In practice,| model for end-to-end testing  |
| product owners and developers |                               |
| rarely continue to use BDD)   |                               |
|-------------------------------|-------------------------------|