ruby-on-rails – 在Rails控制器测试中,如何访问不同的控制器操
发布时间:2020-12-17 04:15:20 所属栏目:百科 来源:网络整理
导读:在功能测试中,我想在另一个控制器中调用一个动作. 解决方法 您必须将@controller实例变量设置为应该使用的控制器. 测试帮助器方法中的示例用法(当然,您不需要在辅助方法中使用它 – 您可以在测试方法中使用它): def login(user_name='user',password='asdfa
在功能测试中,我想在另一个控制器中调用一个动作.
解决方法
您必须将@controller实例变量设置为应该使用的控制器.
测试帮助器方法中的示例用法(当然,您不需要在辅助方法中使用它 – 您可以在测试方法中使用它): def login(user_name='user',password='asdfasdf') # save the current controller old_controller = @controller # use the login controller @controller = LoginController.new # <--- # perform the actual login post :login,user_login: user_name,user_password: password assert_redirected_to controller: 'welcome',action: 'index' # check the users's values in the session assert_not_nil session[:user] assert_equal session[:user],User.find_by_login('user') # restore the original controller @controller = old_controller end 回答Jonathan Weiss,2006年在ruby-forum:post() to other controller in functional test? 应该注意的是,在大多数情况下(可能> 99.9%的时间),应该使用集成测试(也称为特征测试)来测试控制器间行为. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |