在两个不同的Rails应用程序上运行控制器测试

时间:2016-05-17 15:52:35

标签: ruby-on-rails rspec

我帮助将Rails 2应用程序迁移到Rails 4,并且我已经进入项目的最后阶段。 Rails 2应用程序没有测试。

显然我们需要测试以确保Rails 4应用程序正常工作,但我们不想用Rails 2语法编写测试,然后经历将测试迁移到Rails 4的痛苦。我们目前正在使用其他项目的RSpec。

我想在Rails 4中编写它们作为功能测试,并使用Capybara.app_host将请求重新路由到正在运行的Rails 2应用程序实例。问题是,应用程序是API,而Capybara不是用于测试API。

有没有办法将RSpec控制器测试路由到另一个服务器实例?

1 个答案:

答案 0 :(得分:0)

再次感谢您的评论。

我认为我们有一个计划。我们尝试在我们的旧项目中运行黄瓜和黄瓜api步骤,但我们意识到让旧的宝石版本很好地协同工作将会很困难。

我正在尝试的解决方案是使用RSpec 1.3并创建一个spec/requests文件夹并向其添加控制器测试。

我从http://matthewlehner.net/rails-api-testing-guidelines/的帖子中得到了这个想法 - 感谢马修。在RSpec 2之前我没有看到文档中的请求规范,因此我们使用integrate_views使控制器测试非常接近集成测试,然后检查控制器返回的主体内容。

至于语法,也许我们可以包含一个expect(..)帮助器来返回一个从Rails 2项目中的#should方法调用#to的对象,并在我们移植时删除它Rails 4项目。