如何在Rails测试中测试params哈希?

7
以下代码会产生错误:"undefined local variable or method 'params'"。
如何测试params哈希?
另外,当有参数存在时,如何测试assert_redirect? 因为参数附加到URL上,所以测试model_path或类似内容会失败。
在Rails 3中使用内置的测试类。

@B Seven:为什么你想要测试params哈希中的内容?我知道这是一个烦人的问题,但我觉得有人想要测试这样的东西很奇怪。更重要的是控制器是否正在检索正确的对象。 - Samo
@Samo,我不确定这是否是一个有效的理由,但我有一个控制器操作,它合并了时间字段和日期字段(我将它们作为单独的字段),如果出现错误,最好确保这些字段被正确地解除合并,以便用户看到它们原来发送的样子。您对此有什么想法? - n_x_l
1个回答

8

http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers提供了一些相关信息。

在这种情况下,params被附加到@request@response对象(取决于您正在测试的HTTP方法),因此您可以将其称为@request.params[:recipient_id]

对于重定向: assert_redirected_to post_path(assigns(:post))会断言您是否被重定向到给定模型的正确路径。assigns方法应该具有您在控制器中设置并传递给视图的实例变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接