gpt4 book ai didi

ruby-on-rails - Rspec:运行外部 Rails 服务器

转载 作者:行者123 更新时间:2023-12-04 20:37:38 25 4
gpt4 key购买 nike

这个问题是关于从 rspec 环境启动外部项目的 rails 服务器。

有2个项目。

  • 第一个项目充当后台管理办公室,它是用户与网页交互的中心应用程序。我称之为 BackOffice
  • 第二个项目是一个 Json API 服务器,它将通过 json 请求从管理后台接收命令。我称之为 ApiServer

  • 我正在尝试测试这两个 rails 项目之间的 API 交互,我想设置 rspec 以便我可以在 BackOffice 项目中编写和维护我的规范文件。这些规范将启动 ApiServer rails 服务器,然后执行测试。

    我的问题是关于启动 ApiServer rails 服务器。查看 rails 应用程序初始化文件后,我认为我必须向“config/environment”添加一个要求。

    但是当我插入 BackOffice/spec/spec_helper.rb
    require File.expand_path('../../../ApiServer/config/environment', __FILE__)

    我收到错误
    `initialize!': Application has been already initialized. (RuntimeError)
    # Backtrace to the file:
    # ApiServer/config/environment.rb
    # Line:
    # Rails.application.initialize!

    我还尝试简单地在反引号中调用以下内容
    `cd /api/path; bundle exec rails s -p 3002` 

    但得到了同样的错误

    然后我从 Capybara 源代码中得到了灵感,并需要“ApiServer/application”,然后我就可以创建一个 ApiServer.new对象,但只要我打电话 initialize!在它上面我得到了同样的信息。

    任何帮助是极大的赞赏。干杯

    最佳答案

    实际上,第二个应用程序只不过是一个外部服务,最好为测试 stub 。

    Thoughtbot 发表了一篇关于使用 vcr 的好文章。 gem 来模拟外部 Web 服务:

    https://robots.thoughtbot.com/how-to-stub-external-services-in-tests

    关于ruby-on-rails - Rspec:运行外部 Rails 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32393199/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com