ruby-on-rails – RSpec错误:模拟“Employee_1”收到意外消息:
发布时间:2020-12-17 03:58:47 所属栏目:百科 来源:网络整理
导读:我的应用程序有两个模型:用户和员工,他们的关系是用户has_many员工. 当我尝试为员工控制器编写Rspec测试用例时: 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.
我的应用程序有两个模型:用户和员工,他们的关系是用户has_many员工.
当我尝试为员工控制器编写Rspec测试用例时: 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 我的结果如下: ....F Failures: 1) EmployeesController GET 'edit' should get user/edit with log in Failure/Error: get :edit,:id=>employee Mock "Employee_1" received unexpected message :to_ary with (no args) # C:in `find' # ./app/controllers/employees_controller.rb:41:in `edit' # ./spec/controllers/employees_controller_spec.rb:51:in `block (3 levels) in ' Finished in 4.31 seconds 5 examples,1 failure 请有人帮我解决这个问题吗?谢谢 解决方法
Rails能够从真实的模型实例推断ID,这是如何工作的:
@employee = Employee.create get :edit,:id => @employee 这不适用于mock_model,原因我不清楚.您只需明确传入ID: employee = mock_model(Employee,:id => 1,:user_id=>@user.id) get :edit,:id => employee.id # or just :id => 1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |