我已经得到了一个使用固定装置的功能测试。我也是在我的单元测试使用器材,但他们没有瑕疵的工作。当运行功能测试,得到了一个:

NoMethodError: undefined method 'recycle!' for #<Response:0x10346be10> /test/functional/responses_controller_test.rb:10:in 'test_testing'

我的功能测试,在这一点上,更是这样做无非是获取到索引操作。例如:

setup do
  @response = responses(:one)
end

test "testing" do
  get :index
  assert true
end

我TestHelper类不包括所有灯具,这样的回应灯具肯定是加载。就像我说的,灯具在单元测试中完全正常工作。

任何想法可能导致此?

有帮助吗?

解决方案

更改

setup do
  @response = responses(:one)
end

setup do
  @myresponse = responses(:one)
end

和您去!

的问题在于 “ActionPack的-3.0.1 / LIB / action_controller / test_case.rb” 绕线386。

在测试用例假定@应答保持“ActionDispatch ::响应”。你覆盖它,它没有“ActionDispatch ::响应”再和测试用例失败。

我不知道这是否是预期行为。

总之,只要确保你不会覆盖@响应/ @请求/ @控制器/ @路线,它应该工作。

其他提示

Flo的答案大多是正确的,但我只是想澄清:

在滑轨3.0.x的该@request预期为一个ActionController::TestRequest类型,其具有在其上限定的recycle!方法。有TestResponseTestRequest,和TestSession

您可能需要实际初始化或操纵这些类型的特定情况下的对象。在我的情况下,我需要嘲笑具有特定域名站点

@request = ActionController::TestRequest.new unless @request
@request.host = "www.hostname.com"

我只是有类似的问题命名的变量@request。 我改为@_request和它解决了这个问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top