機能仕様
機能仕様は、アプリケーションを通じて機能の一部をテストするための高レベルなテストです。 通常、ウェブページを介してアプリケーションを操作します。
機能仕様は、type: :feature
とマークされるか、もしくは config.infer_spec_type_from_file_location!
を設定している場合は、spec/features
に配置することで示されます。
機能仕様には、Capybara gem のバージョン2.13.0以降が必要です。 機能仕様で使用できるメソッドやマッチャーについては、capybara API ドキュメントを参照してください。 Capybaraは、HTTPを介してブラウザのリクエストをシミュレートするために使用されます。主にHTMLコンテンツを送信します。
feature
と scenario
のDSLは、それぞれ describe
と it
に 対応しています。
これらのメソッドは、機能仕様がより顧客テストや受け入れテストとして読みやすくなるようにするためのエイリアスです。
Capybaraが必要な場合、自動的に type: :feature
が設定されます。
Capybaraを使用してアプリケーションを操作してWidgetを作成することを指定する
以下の内容で "spec/features/widget_management_spec.rb" という名前のファイルを作成します。
require "rails_helper"
RSpec.feature "Widget management", type: :feature do
scenario "User creates a new widget" do
visit "/widgets/new"
click_button "Create Widget"
expect(page).to have_text("Widget was successfully created.")
end
end
rspec spec/features/widget_management_spec.rb
を実行すると、
例がパスするはずです。