Ruby on rails 有效的TDD战略的所有要素是什么?
我对学习如何使用TDD正确开发软件感到非常失望。似乎每个人做这件事的方式和顺序都不一样。在这一点上,我只想知道所有的考虑因素是什么?这就是我想到的:我应该使用rspec和水豚。话虽如此,我需要编写哪些不同类型的测试,才能构建一个经过良好测试的应用程序。我正在寻找一个列表,其中包括我的应用程序正在测试的区域、测试它所需的框架以及任何依赖项Ruby on rails 有效的TDD战略的所有要素是什么?,ruby-on-rails,rspec,tdd,capybara,Ruby On Rails,Rspec,Tdd,Capybara,我对学习如何使用TDD正确开发软件感到非常失望。似乎每个人做这件事的方式和顺序都不一样。在这一点上,我只想知道所有的考虑因素是什么?这就是我想到的:我应该使用rspec和水豚。话虽如此,我需要编写哪些不同类型的测试,才能构建一个经过良好测试的应用程序。我正在寻找一个列表,其中包括我的应用程序正在测试的区域、测试它所需的框架以及任何依赖项 例如,人们似乎建议从单元测试模型开始,但当我观看TDD教程时,他们似乎只编写集成测试。我遗漏了什么吗?使用TDD进行实际应用程序的端到端开发确实是一项文档不足的
例如,人们似乎建议从单元测试模型开始,但当我观看TDD教程时,他们似乎只编写集成测试。我遗漏了什么吗?使用TDD进行实际应用程序的端到端开发确实是一项文档不足的活动。的确,你会在那里找到教科书上的例子、katas和理论文章。然而,有几本书对TDD采取了更全面、更实用的方法——例如(强烈推荐),在较小程度上,还有贝克的,尽管它们没有专门针对RoR GOOS中描述的方法从编写端到端验收测试(集成测试,在您的案例中可能相当于RSpec测试)开始,但在该循环中,您可以编写设计较低级别对象所需的尽可能多的TDD单元测试。在编写这些代码时,您基本上可以从您想要的地方开始—从外层、内层或应用程序中对您最方便的部分开始。只要你模拟掉任何依赖性,它们仍然是单元测试。好吧,主题“how do you TDD”与主题“how do you Right test?”一样公开。在Ruby中,更具体地说,在Rails中,rspec应该是开始使用的工具,而不是结束使用的工具。RSpec允许您为组件编写单元测试,以单独测试它们。在Rails上下文中,这意味着:
- 测试你的模型
- 测试你的控制器
- 测试你的观点
- 测试你的助手
- 测试你的路线
除此之外,您还应该正确对待测试方法。也就是说,您是选择声明式方法还是命令式方法 当我开始学习rails时,我也有同样的问题,有很多工具或方法可以让测试变得更好,但在花了很多时间之后,我终于意识到,你可以忘记你必须做什么或不做什么的规则,先测试一些你认为可能有问题的东西,然后再测试其他地方。嗯,这需要时间
这正是我的观点。从简单开始,根据需要添加更多的工具和技术。TDD应用程序的方法很多,因为每个应用程序都是不同的。一种方法是从Rspec和Capybara(或Cucumber和Capybara)的端到端测试开始,然后根据需要添加更多细粒度测试 您知道,当需要几分钟以上的时间才能通过水豚测试时,您需要更多细粒度测试 此外,如果应用程序的域非常重要,那么首先开始测试域可能会更有成效
这要看情况了!尝试不同的方法,看看哪些方法适合您。端到端到底需要什么?集成测试是第一种方法吗?您编写了一个测试,模拟用户在浏览器中的操作,并分析用户在浏览器中看到的内容。我就快到了(请原谅)。。。但这是通过rspec集成测试来完成的,是吗?是的,这将是我首选的方法。谢谢你的全面回答!rspec不也提供集成测试吗?我看到很多教程一起使用rspec和capybara编写集成测试。那么黄瓜/水豚是否与rspec/水豚做了相同的事情?如果是这样,从rspec/水豚转换到rspec/水豚有什么好处