Ben*_*enj 5 rspec ruby-on-rails
这个问题是关于从rspec环境启动外部项目的rails服务器.
有2个项目.
我正在尝试测试这两个rails项目之间的API交互,我想设置rspec,这样我就可以在BackOffice项目中编写和维护我的spec文件.这些规范将启动ApiServer rails服务器,然后播放以执行测试.
我的问题是关于启动ApiServer rails服务器.在查看rails app初始化文件后,我假设我必须向"config/environment"添加一个require.
但是当我插入BackOffice/spec/spec_helper.rb时
require File.expand_path('../../../ApiServer/config/environment', __FILE__)
Run Code Online (Sandbox Code Playgroud)
我收到了错误
`initialize!': Application has been already initialized. (RuntimeError)
# Backtrace to the file:
# ApiServer/config/environment.rb
# Line:
# Rails.application.initialize!
Run Code Online (Sandbox Code Playgroud)
我还尝试在反引号中简单地调用以下内容
`cd /api/path; bundle exec rails s -p 3002`
Run Code Online (Sandbox Code Playgroud)
但得到了同样的错误
然后我从Capybara源代码中获得灵感,并且需要"ApiServer/application",然后我能够创建一个ApiServer.new对象,但是一旦我调用initialize!它就会得到相同的消息.
任何帮助是极大的赞赏.干杯
实际上,第二个应用程序只不过是一个外部服务,最好对测试进行存根。
Thoughtbot 有一篇关于使用vcrgem 模拟外部 Web 服务的好文章:
https://robots.thoughtbot.com/how-to-stub-external-services-in-tests
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |