誰かがこれら2つのプラットフォームの違いを説明できますか?
両方がの一部ですBDD
が、なぜどちらか一方、または両方を一緒に使用する必要がありますか?
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 に依存して、実際の「合格または不合格」の作業を行います。
cucumberは、ビジネスで読み取り可能なドメイン固有の言語でテスト シナリオを表現する BDD ツールです。
capybaraは、ROR アプリケーション用の自動テスト ツール (よく使用される) です。
カピバラの github ページには、キュウリでカピバラを使用する例があります。
Cucumber は汎用の BDD ツールです。Web アプリについては何も知りません。そのため、Cucumber のステップ定義は Web アプリをテストするために Capybara を呼び出します。