我听说,至少,如果您只为模型编写单元测试并尝试将大部分逻辑保留在模型中,那么您的情况就相当不错了。测试 Controller 和 View 或框架的任何其他部分有什么优点吗?
最佳答案
我认为正确的答案是 - 这取决于:-)
如果您的 Controller 真的很笨并且由“一个衬垫”组成,则无需对其进行测试,因为没有任何(或几乎没有)可以损坏。从你所说的情况来看,这是你的情况。请记住,您应该单独测试 Controller ,以便模拟您的模型,并且这需要一些时间/代码。
测试 View 要棘手得多,因为您应该单独测试该层 - 因此您必须模拟所有模型/ Controller - 这是单元测试的原则。
所以我只会投票支持单元测试模型。您几乎拥有所有逻辑,因此您的测试代码覆盖率很高。为模型编写 RSpec 非常简单。
但是 - 除了单元测试之外,您确实应该进行集成测试。 cucumber 对此非常有用。在集成测试中,您可以同时测试所有层,而不是孤立地测试。而且 Cucumber 测试可以与您的客户讨论,因为它们是人类可读的。这确实是澄清的重要来源 - 当您编写集成测试时,您经常会发现未指定的边缘情况(又名“如果用户点击那里,应用程序应该做什么?”)。
所以我的谦虚建议很简单:
RSpec 用于模型单元测试,Cucumber 用于集成测试
关于ruby-on-rails - 在 Ruby on Rails 中,您测试 Controller 和 View 还是大多数模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3797001/