如果form_tags是正确的,是否可以测试视图页面?

时间:2010-11-06 01:55:28

标签: ruby-on-rails testing rspec

使用rspec或类似的,是否可以测试模板逻辑正确的视图页面?

e.g。说我的模型更改,我的表单标记助手正在引用一个不再存在或重命名的模型属性。

我可以测试渲染模板以查看它是否中断?

1 个答案:

答案 0 :(得分:1)

当您浏览RSpec文档时,您会注意到它非常坚持模型,视图和控制器测试保持独立,并且不同层的测试之间的交互最少(严重依赖于模拟)。所有图层组合在一起的方式更多地落入集成测试领域。如果您设置了一套不错的集成测试,那么当你破坏对另一层产生影响的东西时,你将不可避免地注意到这一点,如你所描述的那样。

您可以使用RSpec进行此类集成测试(请参阅RSpec文档中的集成模式),但它相当繁琐且简单明了:

response.should have_tag("input[name=?]", "foo")

集成模式将调用您的控制器并呈现相关视图,此时视图将拒绝渲染,因为它调用不存在的模型方法(在这种情况下,它甚至不重要)在你看来测试)。

或者你可以去黄瓜/牛排/等路线(从长远来看这可能是一个更好的主意)。