测试控制器时禁用渲染
我正在使用 Test::Unit 和 shoulda 来测试控制器。
因为我只是测试控制器,所以我不想渲染视图。
我正在存根一些对象,渲染视图时会抛出一些错误,但测试不应该失败,因为控制器是正确的。
那么,有什么方法可以从我的测试中禁用模板/视图的渲染?
我听说 rSpec 就是这样工作的。
I'm using Test::Unit with shoulda to test a controller.
Since I'm just testing the controller I dont wanna the view to be rendered.
I'm stubbing some objects, some errors are throw when the view is rendered, but the test shouldn't fail, because the controller is correct.
So, theres any way to disable the rendering of a template/view, from my tests?
I heard that rSpec works like that.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 Mocha,那就很简单了。 将其添加到您的个人测试或设置方法中:
如果您不这样做,那么,请使用 Mocha。
然后在你的 test_helper.rb 中
If you're using Mocha, it's easy. Add this to your individual test or your setup method:
If you're not, well, use Mocha.
Then in your test_helper.rb
您实际上不应该在测试中看到任何视图。 你能发布你失败的测试代码吗? 控制器(功能)测试应该仅检查调用您的操作时是否正在发生特定操作。 即它应该检查它是否呈现正确的视图或重定向到不同的操作。 您还可以检查闪光灯的设置或视图的其他变量。 这是您正在测试的类型吗?
这是一个使用来自 shoulda 文档的 get 请求来测试显示操作的好例子:
也许看看 rails 指南 这也相当不错。
You shouldn't really be seeing any view in your tests. Can you post up your failing test code? The controller (functional) tests should only be checking that a particular action is occurring when your action is called. I.e it should check that it renders the correct view or redirects to a different action. You can also check the setup of the flash or other variables for the view. Is this the type of this you are testing for?
Here is a good example of testing a show action with a get request taken from the shoulda docs:
Maybe take a look at rails guides which is pretty good too.