2010-09-21 12 views
5

Veo la siguiente línea en uno de los archivos de prueba en rieles. Tiene un método llamado any_instance. ¿Cuál es su uso? Por favor alguien puede explicar¿Cuál es el uso de cualquier método de instancia en Rails

http = Net::HTTP.new(Person.site.host, Person.site.port) 
ActiveResource::Connection.any_instance.expects(:http).returns(http) 
http.expects(:request).returns(ActiveResource::Response.new("")) 

Gracias

Respuesta

7

any_instance es un método Mocha. Desde la página doc:

Devuelve un objeto simulado que detectará las llamadas a cualquier instancia de esta clase.

Product.any_instance.stubs(:save).returns(false) 
product_1 = Product.new 
assert_equal false, product_1.save 
product_2 = Product.new 
assert_equal false, product_2.save 
+1

estoy confundido sobre lo que esto hace. ¿Puede explicarme por favor? – bragboy

+1

Mocha es un marco de burlado y burlado, que se utiliza en pruebas unitarias para simular la interacción con objetos de forma controlada. En el caso de su código, una llamada a 'ActiveResource :: Connection # http' para cualquier objeto' ActiveResource :: Connection' al que se acceda durante la prueba unitaria devolverá el objeto 'http' creado en la primera línea. –

Cuestiones relacionadas