如何安装factory_bot_rails?我正在使用 Rspec

问题描述 投票:0回答:1

我正在尝试安装factory_bot_rails以与rspec一起使用。

我正在通过 RSpec 测试驱动开发的实用方法进行日常 Rails 测试,作者:Aaron Sumner,http://leanpub.com/everydayrailsrspec,于 2024 年 10 月 10 日发布。

我能够在从本书的 github 站点下载的克隆存储库上安装factory_bot_rails。 但是,当我尝试在我正在工作的存储库上使用它时,我无法安装它。

这是我尝试过的:

$ bundle add factory_bot_rails
$ bundle install
$ rspec

我收到以下部分错误消息:

An error occurred while loading ./spec/models/book_spec.rb.
Failure/Error: require_relative '../config/environment'

我的仓库中有一个“书”的模型。

我也尝试过

$ rails generate factory_bot:model book

并且得到了部分:

/home/jajames/.rvm/gems/ruby-2.7.2@pda/gems/factory_bot-6.4.5/lib/factory_bot/evaluator.rb:80: syntax error, unexpected end-of-input, expecting `end'

还尝试过:

$ gem install factory_bot_rails
$ bundle install
$ rspec

https://github.com/thoughtbot/factory_bot_rails 同样的错误消息。

在 Gemfile 中:

group :development, :test do
  gem 'rspec-rails', '~> 6.0.0'
  gem 'factory_bot_rails'
end

https://github.com/thoughtbot/factory_bot_rails

我都尝试过

$ factory_bot – version
$ factory_bot_rails –version

并得到“factory_bot_rails:找不到命令”

我需要做哪些不同的事情来安装这个?

我在 Windows 10 Enterprise、Rails 7.0.3、RSpec 3.12、Ruby 2.7.2p137(2020-10-01 修订版 5445e04352)上使用 Ubuntu 22.04.5 [x86_64-linux]

ruby-on-rails rspec factory-bot
1个回答
0
投票

在gemfile中添加

group :test do
  gem 'factory_bot_rails', '~> 6.4'
  gem 'rspec-rails', '~> 7.0'
end

在config/application.rb中

config.generators.system_tests = nil
config.generators do |g|
  g.test_framework :rspec, fixtures: true, views: false, view_specs: false, helper_specs: false, routing_specs: false, controller_specs: false, request_specs: false
  g.fixture_replacement :factory_bot, dir: 'spec/factories'
  g.stylesheets false
  g.javascripts false
  g.helper false
end

然后运行

bundle install

在spec/rails_helper.rb中添加

require 'rspec/rails'
require 'factory_bot_rails'
RSpec.configure do |config|
  config.include FactoryBot::Syntax::Methods
end

工厂示例(用户是另一家工厂)

FactoryBot.define do
  factory :company do
    sequence(:name) { |i| "My company #{i}" }
    user
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.