【发布时间】:2013-04-10 17:09:06
【问题描述】:
测试和 Rspec 对我来说是新的。目前我正在使用 Rspec 与 Shoulda 和 Capybara 来测试我的应用程序。测试模型、控制器、助手、路由和请求都很好。但是我应该在视图中究竟测试什么?实际上,我想测试视图中的所有内容,包括 DOM,但我也不想做得过火。
【问题讨论】:
标签: ruby-on-rails-3 testing rspec capybara rspec-rails
测试和 Rspec 对我来说是新的。目前我正在使用 Rspec 与 Shoulda 和 Capybara 来测试我的应用程序。测试模型、控制器、助手、路由和请求都很好。但是我应该在视图中究竟测试什么?实际上,我想测试视图中的所有内容,包括 DOM,但我也不想做得过火。
【问题讨论】:
标签: ruby-on-rails-3 testing rspec capybara rspec-rails
这三件事将是一个很好的起点
使用 Capybara 从您网站的根目录开始,让它点击链接等任何内容,直到它到达您想要测试的视图。
确保页面上应有的内容实际上显示在页面上。因此,如果他们的“用户”访问了 Product 1 页面,请确保所有 Product 1 内容确实存在。
如果不同的用户看到不同的内容,请确保它正常工作。因此,如果管理员用户看到管理员类型的按钮,请确保当用户是管理员时这些按钮是它们,而不是当用户不是管理员时。
这三件事是一个很好的基础。即使是第一个也是一个巨大的胜利。这将捕获您可能意外引入的任何类型的奇怪视图语法错误,因为语法错误将使测试失败。
【讨论】:
在我的工作中,我们只使用 RSpec 进行单元测试。
对于业务测试或行为测试,我们使用 Cucumber,它对业务和 IT 人员来说更具可读性。 这就像您与您的企业签订的合同,或者您可以执行的文档。
【讨论】:
我使用视图规范来验证视图是否使用了我在 jQuery 代码中依赖的 ID 和类。
并测试同一页面的不同版本。例如:
我不想创建两个完整的请求或功能规范来检查新用户看到welcome message A 和返回用户welcome message B。相反,我会选择其中一种情况,为其编写请求或功能规范,然后再编写一个额外的视图规范来测试这两种情况。
Rails Test Prescriptions 可能对您来说很有趣,因为它有一章专门用于查看测试。
【讨论】: