Rspec,shoulda和spork不能一起工作

时间:2010-10-08 20:53:02

标签: ruby-on-rails rspec shoulda spork

当我运行rspec spec/models时结果没问题。

但是,当我使用 spork 时,每个测试应该使用#a {1}}的所有测试使用FAILS,如下所示:it { should validate_presence_of(:title) }

我用:

undefined method 'validate_presence_of' for ...

规格/ spec_helper.rb:

require 'rubygems'
require 'spork'

Spork.prefork do
  # This file is copied to spec/ when you run 'rails generate rspec:install'
  ENV["RAILS_ENV"] ||= 'test'
  require File.expand_path("../../config/environment", __FILE__)
  require 'rspec/rails'
  require 'shoulda'
...

2 个答案:

答案 0 :(得分:15)

我有同样的问题。通过在prefork块中要求require 'shoulda/integrations/rspec2'后粘贴rspec/rails来修复它。

您可能还想将您的spork升级到最新版本(gem 'spork', >= 0.9.0.rc2),因为我没有在0.8.4上尝试此修复程序(虽然我很确定它也能正常工作)

答案 1 :(得分:1)

尝试移动

require "shoulda"

进入Spork.each_run区块。显然,shoulda会将匹配器包含在适当的示例组中。