FactoryBot 未初始化的常量 FactoryName

Qwe*_*tie 2 ruby rspec factory-bot

我有工厂

FactoryBot.define do
    factory :activity_fit_file do
        association :user, factory: :user
        activity_type {:cycling}
        after(:build) do |activity|
            activity.original_activity_log_file.attach(
                io: File.open("#{Rails.root}/spec/files/example_fit_file.fit"),
                filename: 'example_fit_file.fit',
                content_type: 'application/vnd.ant.fit'
            )
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

在我的规范中,我有

require 'rails_helper'

RSpec.describe "Activity upload fixer" do
    it 'converts fit files to gpx' do
        activity = FactoryBot.create(:activity_fit_file)
    end
end
Run Code Online (Sandbox Code Playgroud)

运行规范给出了错误

 NameError:
   uninitialized constant ActivityFitFile
Run Code Online (Sandbox Code Playgroud)

不太确定出了什么问题,因为它似乎与其他工作工厂相同。

Ser*_*sev 8

您可以拥有自定义工厂名称,但您必须指定实际的类。

factory :activity_fit_file, class: 'Activity' do
  ···
end
Run Code Online (Sandbox Code Playgroud)