2011-02-24 11 views
6
Foo.expects(:bar) 
Foo.bar(:abc => 123, :xyz => 987) 

# assert Foo.bar was called with a hash that has a key of :abc == 123 

Básicamente Quiero examinar el objeto pasado como argumento a un método stubbed, con el fin de inspeccionar en un valor de ese objeto. En mi situación no puedo usar Foo.expects(:bar).with({:abc => 123}) porque sé que el objeto no será igual entre sí. Solo quiero comparar un subvalor del argumento.conseguir el objeto que se pasa como argumento a un método aplastó con Mocha

Seguramente esto es posible, simplemente no puedo encontrar la sintaxis o estrategia aquí.

Respuesta

10

¡Lo descubrí! Resulta que with puede tomar un bloque.

Foo.expects(:bar).with do |the_hash| 
    the_hash[:abc] == 123 
end 
+0

¡Gracias por esto! – Jason

Cuestiones relacionadas