作为Rspec noob,我不知道这个问题有道理。我真的很困惑,无法为此解决问题。
我们有一个新要求,要求我们为现有项目编写Rspec测试用例。他们有使用rails3的应用程序已经工作但他们希望现在可以写入rspec案例
我的问题是
为现有应用程序编写Rspec案例确实有意义吗?
我们可以为已经工作的项目编写规范吗
我们是否应遵循任何指南为已编写的应用编写规范
谢谢
答案 0 :(得分:8)
正如dpassage正确指出的那样,你的问题与rspec无关。这是关于遗留代码的单元测试。
为现有应用程序编写Rspec案例确实有意义吗? 我们可以为已经工作的项目编写规范吗
是。在编写应用程序之前首先编写测试时最好。写测试永远不会太晚,起步晚不伤人。 测试遗留代码:Adding unit tests to legacy code
我们是否应遵循任何指南为已编写的应用编写规范
我的两分钱:
逐步添加测试
首先测试应用程序中最重要的部分。即首先开始编写单元测试并关注重要模型(而不是所有模型)。测试模型后,请转到功能测试(控制器)和集成测试。 记住:要吃大象,我们需要一次吃一块。
如果现有模型难以编写测试,则意味着您需要重构代码。重构使您的模型易于测试。
始终从现在开始为新模型/实现编写单元测试。
有用的参考资料:
答案 1 :(得分:7)
将测试用例添加到现有代码中是绝对有意义的;它将有助于保持应用程序正常运行,因为未来的增强功能和错误修复已经完成。
rspec
没有任何内容可以使这一点与众不同;它只是一个测试框架,使您能够以多种不同的方式测试代码。
有大量关于为遗留代码编写测试的文献;结合优秀的文档,如The Rspec Book,你应该可以开始了。
答案 2 :(得分:0)
我写了这个宝石https://rubygems.org/gems/autogen_rspec。
所以这个宝石有完整的功能,但我觉得它需要一些抛光。
它是如何工作的? 因此,在我们安装此gem并运行服务器之后,gem开始记录所有请求,响应和断言rspec样式。因此,如果您在QA环境中安装此项,并且QA团队将测试回归,则所有URL都将记录到包含响应的文件中。
您可以选择存储在测试文件中的需要选择的测试。