【问题标题】:Getting uninitialized constant Faker::String when attempting to set up rspec test in Rails尝试在 Rails 中设置 rspec 测试时获取未初始化的常量 Faker::String
【发布时间】:2018-01-02 22:12:22
【问题描述】:

我有一个 UrlContent 模型,我正在尝试为 Json 的索引页面的 API 调用编写一个 rspec 测试。但是,每当我运行 rspec 时,它都会给我这个错误:

 Failure/Error: content { Faker::String }

 NameError:
   uninitialized constant Faker::String

当属性的 faker 似乎已经正确配置时,为什么会给出该错误?

这让我很困惑,因为在我的 spec/factories/url_content.rb 文件中我有:

需要“伪装者”

FactoryBot.define do
  factory :url_content do
    content { Faker::String }
  end
end

我设置的具体 rspec 测试是:

require 'rails_helper'
require 'faker'

RSpec.describe "UrlContents API", type: :request do

    before { FactoryBot.create_list(:url_content, 3) }

describe 'GET /url_contents' do
    before { get '/url_contents'}

    it 'returns a status code of 200' do 
        expect(response).to have_http_status(200)
    end

    it 'returns an array of content in JSON' do 
        json = JSON.parse(response.body, symbolize_names: true)

    end 

end

end 

【问题讨论】:

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


    【解决方案1】:

    Faker::String was added to the ruby gem 9 days ago.

    The most recent gem version,在撰写本文时,是1.8.7;于 12 月 22 日发布(即在添加 Faker::String 之前)。

    如果你想使用 gem 的那个特性,你需要告诉 bundler 使用 repo 的 master 分支:

    gem 'faker', git: 'https://github.com/stympy/faker'
    

    ...或者,从源代码本地构建 gem。

    git clone git@github.com:stympy/faker.git
    rake install
    

    很不幸,您选择在这样一个积极维护的 gem 上使用未发布的功能。

    但是,通常您可以检查changelog 以查看您的 gem 版本是否足够最新;或者,如果失败,则直接使用 git 历史记录。

    您也可以在您的项目中运行bundle open faker,并浏览源代码以查看您的功能是否存在于已安装的 gem 中。

    【讨论】:

      【解决方案2】:

      Faker::String 于 9 天前在 December 24 添加到 faker gem,最新版本的 faker(1.8.7) 已在 December 22 上发布。您必须使用来自 Github 的版本才能使用 Faker::String。在Gemfile 中指定 git 存储库,如下所示:

      gem 'faker', git: 'https://github.com/stympy/faker'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-10
        • 2016-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-24
        • 2015-04-12
        相关资源
        最近更新 更多