如何自动为Ruby on Rails生成测试用例?

时间:2014-02-06 18:04:44

标签: ruby-on-rails ruby testing rspec rspec-rails

有没有办法自动生成简单的测试用例?我发现自己花时间编写非常简单的测试,以确保所有控制器和模型都正常工作。以下是使用rspec编写的控制器测试用例的示例:

machine = FactoryGirl.create(:machine, type: 1)
mac = FactoryGirl.create(:mac, machine_id: m1.id)
win = FactoryGirl.create(:win, machine_id: m4.id)
sign_in user
get :index
get :show, id: machine.id
get :report

我现在找不到任何可以根据新编写的代码自动生成此类测试的工具。如果真的没有,我可以考虑为这个问题建立一个解决方案。

2 个答案:

答案 0 :(得分:1)

要涵盖基本功能,您可以编写特定的generator

您还可以重新定义标准支架模板(例如,通过将自己的模板添加到lib / templates / rspec / model / model_spec.rb - 这将重新定义模型脚手架)。

但真正的问题是为什么要这样做。在TDD之后,您应该编写测试然后创建代码,而不是相反。

答案 1 :(得分:1)

如果测试的可预测性足以产生它,那么写作就不值得了。在您的示例中,您不会断言任何内容。这是一个非常弱的测试,仅适用于提高代码覆盖率。如果它断言应该在页面上应该是什么,它会更强大。你不能生成它。您也无法生成以有意义的方式遍历多个页面的场景。 (我认为你的例子想成为一个rspec特征规范或黄瓜场景。)

编写一个生成框架的生成器是有意义的,开发人员可以使用无法生成的有意义的部分来填充该框架。