Mocha Mock lleva a otra prueba
He estado siguiendo el15 pasos TDD para crear una aplicación Rails guía, pero me he encontrado con un problema que parece que no puedo resolver. Para la prueba funcional de WordsController, tengo el siguiente código:
class WordsControllerTest < ActionController::TestCase
test "should get learn" do
get 'learn'
assert_response :success
end
test "learn passes a random word" do
some_word = Word.new
Word.expects(:random).returns(some_word)
get 'learn'
assert_equal some_word, assigns('word')
end
end
En la clase de Word tengo el siguiente código:
class Word < ActiveRecord::Base
def self.random
all = Word.find :all
all[rand(all.size)]
end
end
Cuando ejecuto las pruebas, experimento el siguiente error (acortado por brevedad):
1) Failure: unexpected invocation: Word(...).random() satisfied expectations:
- expected exactly once, already invoked once: Word(...).random()
He intentado cambiar cambiando el orden de las pruebas junto con una multitud de otras cosas, pero una y otra vez sigo recibiendo el mismo error de prueba: que Word.random () ya ha sido invocado.
Estoy ejecutando Rails 3.0 beta 4 y Mocha 0.9.8. He buscado mucho para encontrar una solución a mi problema, pero parece que no puedo encontrarlo. Soy nuevo en Ruby / Rails, así que no estoy familiarizado con el lenguaje y los marcos.
¡Gracias por adelantado!