0

我有一些使用 rails spec(以及capybaraand factory girl)的测试并且通过就好了

describe "project creation" do
  before(:each) do
    @project = FactoryGirl.create(:project)
  end
  it "create projects fluently" do
    visit root_path
    @project.should validate_presence_of(:title)
  end
end

然后我安装了spring,当我运行时spring rspec spec/features/projects_spec.rb,它会抛出

Failure/Error: @project.should validate_presence_of(:title)
     NoMethodError:
       undefined method `validate_presence_of' for #<RSpec::Core::ExampleGroup...

怎么会这样

4

1 回答 1

1

此处讨论了此问题:https ://github.com/rails/spring/issues/209 ,但在 shoulda-matchers gem 的自述文件中说明如何使用预加载器安装它,基本上我的解决方案是:

  1. 将 Gemfile 中的 rspec-rails 行移到 shoulda-matchers 上方

  2. 将 require: :false 添加到 Gemfile 中的 shoulda-matchers

  3. 在 spec_helper.rb 中添加 require 'should/matchers'

我的 Gemfile 看起来像:

group :test do
  gem "rspec-rails"
  gem 'shoulda-matchers', require: false
  gem 'machinist'
end

现在我的规范应该与春天一起工作!

于 2014-04-20T02:58:12.257 回答