RSpec Fehler: Mock "Employee_1" erhielt eine unerwartete Nachricht:to_ary mit(ohne Argumente)
Meine Anwendung hat zwei Modelle: User und Mitarbeiter, und Ihre Beziehung ist user has_many Mitarbeiter.
Als ich zu schreiben versucht, eine Rspec-Testfall für die Mitarbeiter-Steuerung:
describe "GET 'edit'" do
it "should get user/edit with log in" do
log_in(@user)
employee = mock_model(Employee, :id=>1, :user_id=>@user.id)
get :edit, :id=>employee
response.should be_success
end
end
Bekam ich das Ergebnis als:
....F Fehler: 1) EmployeesController GET 'Bearbeiten' sollte get user/edit mit log in Ausfall/Fehler: es bekommen :Bearbeiten :id=>Mitarbeiter Mock "Employee_1" erhielt eine unerwartete Nachricht :to_ary mit (ohne Argumente) # C:in `find' # ./app/controllers/employees_controller.rb:41:in "Bearbeiten" # ./spec/controllers/employees_controller_spec.rb:51:in `block (3 Stufen) in' Fertig in 4.31 Sekunden 5 Beispiele, 1 Fehler
Kann mir jemand helfen mit dieser bitte? Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schienen in der Lage ist, zu schließen, die ID aus einer wahren Modell-Instanz, die, wie dies funktioniert:
Das funktioniert nicht mit
mock_model
aus Gründen, die mir unklar. Sie können einfach vorbei kommen in die ID explizit:Ich denke, das problem ist, Sie sind mit mock_model, die werfen Fehler, wenn Sie eine Methode aufrufen, die auf dem Modell, dass Sie nicht explizit die Schaffung einer Erwartung. In diesem Fall könnten Sie schaffen Sie Mitarbeiter mit stub_model seit Sie führen keine Kontrollen auf Anrufe tatsächlich an das Modell.
Ich denke, das problem ist mit mock_model, die Sie verwenden können, doppelt, für, die.