Tengo before_validation :do_something, :on => :create
en uno de mis modelos.¿Hay alguna manera de probar devoluciones de llamada `before_validation` con un argumento`: on` en Rails?
Quiero probar que esto suceda, y no ocurre en :save
.
¿Hay una manera sucinta de probar esto (utilizando los carriles 3, Mocha y Shoulda), sin hacer algo como:
context 'A new User' do
# Setup, name test etc
@user.expects(:do_something)
@user.valid?
end
context 'An existing User' do
# Setup, name test etc
@user.expects(:do_something).never
@user.valid?
end
No puedo encontrar nada en la API de la debería, y esto se siente bien in- DRY ...
¿Alguna idea? Gracias :)
OK, en caso de que encuentre un matcher/write one o alguien aparezca uno para: before_validation, asegúrese de usar esta técnica simple de este [post] (http://stackoverflow.com/questions/3134066/ shoulda-rspec-matchers-on-create/5372151 # 5372151) para resolver el bit que se debe hacer con: on => create. Una solución bastante simple usando el bloque "sujeto". – jake