测试和Rspec对我来说是新的。目前我正在使用Rspec与Shoulda和Capybara来测试我的应用程序。测试模型、控制器、助手、路由和请求都没问题。但我应该在视图中测试什么呢?实际上,我想测试视图中的所有内容,包括DOM,但我也不想做得过火。
这三件事将是一个很好的起点
-
使用Capybara从你的网站的根开始,让它点击链接和任何东西,直到它到达你想测试的视图
-
确保任何内容应该在页面上,实际上是显示在页面上。所以,如果他们'user'去了Product 1页面,确保所有的Product 1内容都在那里。
-
如果不同的用户看到不同的内容,确保工作。如果Admin用户看到Admin类型的按钮,确保当用户是Admin时这些按钮是他们,当用户不是Admin时这些按钮不是。
这三样东西是很好的基础。即使是第一个也是一个巨大的胜利。这将捕获您可能不小心引入的任何奇怪的视图语法错误,因为语法错误将无法通过测试。
在我的工作中,我们只使用RSpec进行单元测试。
对于业务测试或行为测试,我们使用Cucumber,它对业务和IT人员来说更容易读懂。它就像你和你的公司签订的合同,或者就像你可以执行的文件。
看看黄瓜:http://cukes.info/
我使用视图规范来验证视图是否使用了我在jQuery代码中所依赖的id和类。
并测试同一页面的不同版本。例如:
我不想创建两个完整的请求或特性规范来检查新用户是否看到welcome message A
和返回用户是否看到welcome message B
。相反,我会选择其中一种情况,为它写一个请求或特性规范,然后再写一个额外的视图规范来测试这两种情况。
Rails Test Prescriptions你可能会感兴趣,因为其中有一章专门介绍了视图测试。