【问题标题】:API as an engine: Can't get factories to work in my rspec testsAPI 作为引擎:无法让工厂在我的 rspec 测试中工作
【发布时间】:2014-12-30 21:39:02
【问题描述】:

我已经构建了一个 api 作为可挂载引擎,但目前在设置工厂女孩时遇到了麻烦。

以这个工厂为例:

FactoryGirl.define do
  factory :client do
    ...
  end
end

当我在 rspec 测试中调用 FactoryGirl.create(:client) 时,我收到错误“未初始化的常量客户端”。在engines/api/app/models 中没有Client 模型,但是在安装了api 的应用程序中有一个Client 模型。我尝试将其命名为该应用程序,即:

factory :client, class: 'MyApp::Client' do

但这似乎不起作用。有什么建议么?

在我的 api 控制器中,当我执行诸如 Client.new 或 Client.create 之类的操作时,它似乎可以神奇地与安装的应用程序一起工作,但我觉得我缺少一些重要的东西来让它与测试一起工作.

【问题讨论】:

标签: ruby-on-rails rspec factory-bot rails-engines


【解决方案1】:

这可能是因为 rspec 可以重新定义要包含的正确类,因此您可以显式要求具有模型类的文件,因此您将得到:

spec/factories/client.rb

require_relative '../../app/models/client.rb'

factory :client, class: MyApp::Client do
   #...
end

【讨论】:

    猜你喜欢
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多