gpt4 book ai didi

ruby-on-rails - 如何测试依赖于其托管应用程序的 Rails 引擎?

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:02 25 4
gpt4 key购买 nike

我有一个 Rails 应用程序,我正在尝试将代码拆分到多个引擎中。

主应用程序拥有一个主 Controller - Api::ApplicationController,引擎中的所有 Controller 都继承自该 Controller ,例如:

Api::Products::ProductsController < Api::ApplicationController

我使用 RSpec 进行测试。

当我运行应用程序时一切正常,但是当我尝试运行引擎的 Rspecs 时,出现错误:

uninitialized constant Api::ApplicationController

如您所知,引擎不能与应用程序分开工作,所以我尝试在规范 (products_controller_spec.rb) 中 stub Api::ApplicationController,但它甚至在开始运行之前就失败了规范。

我想也许我应该以不同的方式实现它,并在某处注入(inject) ApplicationController 功能而不是从它继承,但我不知道在哪里。

我考虑的另一件事是将引擎的规范注入(inject)托管应用程序并从那里运行它,但它似乎不起作用,而且不可能以这种方式调试规范。

如何测试?

最佳答案

Rails 引擎创建小型虚拟应用程序用于测试目的。您需要创建一个最小的应用程序,它具有测试应用程序所需的功能,并且它将使用它来运行它的规范。

看这里:

http://edgeguides.rubyonrails.org/engines.html#testing-an-engine

对于这种情况,我认为更好的解决方案是将所有引擎作为模块共享的共享应用程序代码放在所有引擎都可以包含的共享 gem 中。

关于ruby-on-rails - 如何测试依赖于其托管应用程序的 Rails 引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28797452/

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