微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 在Rails控制器测试中,如何访问不同的控制器操作?

功能测试中,我想在另一个控制器中调用一个动作.

解决方法

您必须将@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%的时间),应该使用集成测试(也称为特征测试)来测试控制器间行为.

原文地址:https://www.jb51.cc/ruby/268187.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐