Me preguntaba cómo probar una llamada find_each en rspec. Estoy acostumbrado a tropezar simplemente lo que yo quiero que mis modelos para volver por lo que no se basan en datos de pruebas en el PP como esto:¿Cómo puedo encontrar find_each para la prueba rspec en rieles 3
MyClass.stub(:find).and_return(my_mock)
Sin embargo, en otra clase que estoy haciendo esto:
MyClass.find_each do |instance_of_my_class|
do_stuff_here_on(instance_of_my_class)
end
me parece que si hago esto:
MyClass.stub(:find_each).and_return([one_mock, two_mock])
en la prueba de especificaciones, no se está ejecutando la parte de "hacer cosas aquí". ¿Alguien sabe cómo encontrar un find_each para la prueba de rspec?
Al hacer esto, se obtiene el siguiente error | mis simulacros aquí | para bloquear con arity de 1. Si paso los simulacros como una matriz, no tiene problema, pero la instancia_de_mi_clase en el bloque find_each es la matriz y no los elementos en ella. – Aaron
¿Qué tal '.and_yield (one_mock) .and_yield (two_mock)'? – zetetic
tiene toda la razón, zetetic: me aseguraré de probar mi consejo la próxima vez :) He editado mi respuesta para incluir su corrección. – Iain