47

誰かがこれら2つのプラットフォームの違いを説明できますか?

両方がの一部ですBDDが、なぜどちらか一方、または両方を一緒に使用する必要がありますか?

4

4 に答える 4

104

Capybaraは、人間が行う方法 (URL にアクセスする、リンクをクリックする、フォームにテキストを入力して送信するなど) で Web サイトと対話するツールです。これは、Web サイトを介したユーザーのフローをエミュレートするために使用されます。Capybara では、次のように記述できます。

describe "the signup process", :type => :feature do
  before :each do
    User.make(:email => 'user@example.com', :password => 'caplin')
  end

  it "signs me in" do
    visit '/sessions/new'
    within("#session") do
      fill_in 'Login', :with => 'user@example.com'
      fill_in 'Password', :with => 'password'
    end
    click_link 'Sign in'
    page.should have_content 'Success'
  end
end

Cucumberは、コードにマッピングされた人間が判読できるテストを作成するためのツールです。これにより、上記の例を次のように書き換えることができます。

Scenario: Signup process

Given a user exists with email "user@example.com" and password "caplin"
When I try to login with "user@example.com" and "caplin"
Then I should be logged in successfully

ほぼプレーンテキストの解釈は、非開発者に渡すのに役立ちますが、実際に機能するためにコードをマップする必要もあります (ステップ定義)。

通常、Web サイトをテストする場合は Capybara を使用し、それらのテストを非開発者と共有する必要がある場合は Cucumber を使用します。これら 2 つの条件は独立しているため、一方のみを使用することも、両方を使用することも、両方を使用しないこともできます。

PS:コード スニペットには、いくつかの RSpec もあります。Cucumber や Capybara だけでは何かをテストできないため、これが必要です。彼らは、RSpec、Test::Unit、または minitest に依存して、実際の「合格または不合格」の作業を行います。

于 2013-06-02T10:57:14.373 に答える
6

cucumberは、ビジネスで読み取り可能なドメイン固有の言語でテスト シナリオを表現する BDD ツールです。

capybaraは、ROR アプリケーション用の自動テスト ツール (よく使用される) です。

カピバラの github ページには、キュウリでカピバラを使用する例があります。

于 2013-02-21T18:43:05.600 に答える
5

Cucumber は汎用の BDD ツールです。Web アプリについては何も知りません。そのため、Cucumber のステップ定義は Web アプリをテストするために Capybara を呼び出します。

于 2013-02-22T16:16:53.273 に答える