2010-10-08 17 views
15

cuando ejecuto rspec spec/models el resultado está bien.Rspec, shoulda y spork no funcionan juntos

Pero cuando se utiliza spork, donde cada prueba macros Shoulda (como it { should validate_presence_of(:title) } se utiliza falla con error como: undefined method 'validate_presence_of' for ...

que utilizo:

especificación
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' 
... 

Respuesta

15

Tuve el mismo problema. Se corrigió pegando require 'shoulda/integrations/rspec2' después de requerir rspec/rails en el bloque prefork.

Usted también puede actualizar su spork a la última versión (gem 'spork', >= 0.9.0.rc2), ya que no probamos esta corrección en 0.8.4 (aunque estoy bastante seguro de que va a trabajar también)

+0

¡Funciona! :) Gracias, artemave. – boblin

+21

Para la versión actual de Horda-Matcher, 'requiere' Horda/Matchers/Integrations/Rspec '' – Zardoz

+0

Puede encontrar algo de ayuda en esta página wiki: https://github.com/timcharper/spork/wiki/Spork.trap_method-Jujutsu –

1

Intente mover el

require "shoulda" 

línea en el bloque Spork.each_run. Aparentemente, debería hacer algo de magia para incluir los matchers en los grupos de ejemplos apropiados.

+0

Gracias a la ayuda , pero no funciona ;-( – boblin

+0

Me mudé y requiero 'shoulda' en Sprok.prefork y funcionó para mí. – santuxus

Cuestiones relacionadas