Rspec, shoulda и spork не работают вместе

когда я запускаю rspec spec/models результат в порядке.

Но когда я использую spork, каждый тест, где должны быть макросы (например, it { should validate_presence_of(:title) } используется FAILS с ошибкой вроде: undefined method 'validate_presence_of' for ...

Я использую:

rails (3.0.0)
shoulda (2.11.3)
spork (0.8.4)
rspec-rails (>= 2.0.0.beta.22)

спецификации/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'
...

Ответы

Ответ 1

У меня была такая же проблема. Исправлено, вставив require 'shoulda/integrations/rspec2' после запроса rspec/rails в блоке предварительного просмотра.

Вы также можете обновить свою spork до последней версии (gem 'spork', >= 0.9.0.rc2), так как я не пробовал это исправление на 0.8.4 (хотя я уверен, что это тоже сработает)

Ответ 2

Попробуйте переместить

require "shoulda"

в блок Spork.each_run. По-видимому, нужно сделать магию, чтобы включить в соответствующие группы примеров.