未定义的方法`expect'for#<RSpec :: ExampleGroups :: TheSigninProcess:0x007fddd28a7750>

use*_*419 3 rspec ruby-on-rails capybara

我写了一个非常基本的RSpec/Capybara Rails测试,但我继续得到那个期望方法是未定义的

我的spec/features/signin_spec.rb:

  require "rails_helper"
  RSpec.feature "the signin process", :type => :feature do
    before :each do
      User.create(:email => "user@example.com", :password => "password")
    end

    scenario "signs me in" do
      visit "/users/sign_in"
      within("#new_user") do
        fill_in "Email", :with => "user@example.com"
        fill_in "Password", :with => "password"
      end
      click_button "Log in"
      expect(page).to have_content "successfully"
    end
  end
Run Code Online (Sandbox Code Playgroud)

rails_helper:

当您运行'rails generate rspec:install'时,此文件被复制到spec /

  ENV['RAILS_ENV'] ||= 'test'
  require 'spec_helper'
  require File.expand_path('../../config/environment', __FILE__)
  require 'rspec/rails'

  ActiveRecord::Migration.maintain_test_schema!

  RSpec.configure do |config|
    config.include Devise::TestHelpers, type: :controller
    config.fixture_path = "#{::Rails.root}/spec/fixtures"
    config.use_transactional_fixtures = true
    config.infer_spec_type_from_file_location!
  end
Run Code Online (Sandbox Code Playgroud)

spec_helper:

    require 'capybara/rspec'
    RSpec.configure do |config|
      config.include Capybara::DSL
      config.expect_with(:rspec) { |c| c.syntax = :should }
      config.expect_with :rspec do |expectations|
        expectations.include_chain_clauses_in_custom_matcher_descriptions = true
      end
      config.mock_with :rspec do |mocks|
        mocks.verify_partial_doubles = true
      end
   =begin
      config.filter_run :focus
      config.run_all_when_everything_filtered = true
      config.disable_monkey_patching!
      if config.files_to_run.one?
        config.default_formatter = 'doc'
      end
      config.profile_examples = 10
      config.order = :random
      Kernel.srand config.seed
    =end
    end
Run Code Online (Sandbox Code Playgroud)

use*_*419 12

添加:expect到此spec_helper删除错误

config.expect_with :rspec do |c|
    c.syntax = [:should, :expect]
end
Run Code Online (Sandbox Code Playgroud)

https://www.relishapp.com/rspec/rspec-expectations/docs/syntax-configuration#disable-expect-syntax

感谢您的帮助@apneadiving和Frederick