测试使用cookie的rails helper

时间:2011-09-27 21:31:24

标签: ruby-on-rails cookies helpers testunit

我在app/helpers/application_helper.rb中有一个调用cookies的方法。这是完全允许的;这个方法在我的开发环境中非常有效,并且在我说cookies时知道我的意思。

我正在使用TestUnit(在test/unit/helpers/application_helper_test.rb中)测试此帮助程序并获取错误

NoMethodError: undefined method `cookies' for nil:NilClass

即使是不设置cookie 的四个测试。这与需要使用cookie_jar'在测试中设置cookie无关,因为问题不在于我正在设置cookie并且我的助手没有识别它们,问题在于 对象 cookies正在调用 nil

我不确定调用了哪个控制器对象cookies,所以我p对所有人进行了调查,发现@controller@request,和@response,只有@response为零。所以我试着将它设置为“牛”。的确!我的错误发生了变化:

NoMethodError: undefined method `cookies' for "cow":String

所以看起来我只需要隐藏@response。我该怎么做?

或者我在这里与某些事情不一致并且过于复杂化了?

1 个答案:

答案 0 :(得分:0)

将此设置添加到执行此方法的所有测试中:

@response.stubs(:cookies).returns({})