Feature specs are high-level tests meant to exercise slices of functionality through an application. They should drive the application only via its external interface, usually web pages.
Feature specs are marked by
type: :feature or if you have set
config.infer_spec_type_from_file_location! by placing them in
Feature specs require the Capybara gem, version 2.13.0 or later. Refer to the capybara API documentation for more information on the methods and matchers that can be used in feature specs. Capybara is intended to simulate browser requests with HTTP. It will primarily send HTML content.
scenario DSL correspond to
These methods are simply aliases that allow feature specs to read more as
customer and acceptance tests. When capybara is required it sets
type: :feature automatically for you.
Specify creating a Widget by driving the application with capybara
Given a file named “spec/features/widgetmanagementspec.rb” with:
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
When I run
Then the example should pass.