2012-07-06 11 views
5

Confundido sobre por qué este método RSpec no está funcionando. Estaba buscando la respuesta aquí: How to use RSpec's should_raise with any kind of exception? y he intentado todas las combinaciones propuestas, pero por alguna razón, sigo recibiendo un NoMethodError.Siguiendo el manejo de excepciones rspec, obteniendo 'NoMethodError' para 'esperar'

Aquí es la excepción

Exception encountered: #<NoMethodError: undefined method `expect' for #<Class:0x007fa5bd8e4120>> 

Aquí está el método:

describe "admin should not be accesible" do 
expect { User.new(name: "Example Name", email: "[email protected]", password: "foobar", password_confirmation: "foobar", admin: "true") }.should raise_error(ActiveModel::MassAssignmentSecurity::Error) 
end 

Tengo este error anterior, así que sé que mi método es hacer lo que yo quiero que haga:

1) User admin should not be accesible 
Failure/Error: hey = User.new(name: "Hello", email: "[email protected]", password: "foobar", password_confirmation: "foobar", admin: "true") 
ActiveModel::MassAssignmentSecurity::Error: 
    Can't mass-assign protected attributes: admin 

Estoy funcionando:

RSpec 2.1.0 en Rails 3 con guard-spork 0.3.2 y spork 0.9.0

Respuesta

13

¡Esto es un clásico! ¡te falta el bloque it!

describe "admin should not be accesible" do 
    it "should bla" do 
    expect { User.new(name: "Example Name", email: "[email protected]", password: "foobar", password_confirmation: "foobar", admin: "true") }.should raise_error(ActiveModel::MassAssignmentSecurity::Error) 
    end 
end 
+6

En este ejemplo, 'expect {} .should' ha quedado obsoleto, use' expect {} .to' –

Cuestiones relacionadas