为现有应用程序编写测试用例(Rspec)

时间:2012-11-06 06:02:49

标签: ruby-on-rails ruby-on-rails-3 rspec tdd

作为Rspec noob,我不知道这个问题有道理。我真的很困惑,无法为此解决问题。

  

我们有一个新要求,要求我们为现有项目编写Rspec测试用例。他们有使用rails3的应用程序已经工作但他们希望现在可以写入rspec案例

我的问题是

  

为现有应用程序编写Rspec案例确实有意义吗?

     

我们可以为已经工作的项目编写规范吗

     

我们是否应遵循任何指南为已编写的应用编写规范

谢谢

3 个答案:

答案 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都将记录到包含响应的文件中。

您可以选择存储在测试文件中的需要选择的测试。