メインコンテンツまでスキップ

機能仕様

機能仕様は、アプリケーションを通じて機能の一部をテストするための高レベルなテストです。 通常、ウェブページを介してアプリケーションを操作します。

機能仕様は、type: :feature とマークされるか、もしくは config.infer_spec_type_from_file_location! を設定している場合は、spec/features に配置することで示されます。

機能仕様には、Capybara gem のバージョン2.13.0以降が必要です。 機能仕様で使用できるメソッドやマッチャーについては、capybara API ドキュメントを参照してください。 Capybaraは、HTTPを介してブラウザのリクエストをシミュレートするために使用されます。主にHTMLコンテンツを送信します。

featurescenario のDSLは、それぞれ describeit に対応しています。 これらのメソッドは、機能仕様がより顧客テスト受け入れテストとして読みやすくなるようにするためのエイリアスです。 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 を実行すると、

例がパスするはずです。