尝试在Rails中设置rspec测试时获取未初始化的常量Faker :: String
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试在Rails中设置rspec测试时获取未初始化的常量Faker :: String相关的知识,希望对你有一定的参考价值。
我有一个UrlContent模型,我正在尝试为Json的索引页面的API调用编写一个rspec测试。但是,每当我运行rspec时,它都会给我这个错误:
Failure/Error: content { Faker::String }
NameError:
uninitialized constant Faker::String
当属性的faker看似已正确配置时,为什么会出现该错误?
这让我感到困惑,因为在我的spec / factories / url_content.rb文件中我有:
要求'faker'
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
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'
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
你选择在一个积极维护的宝石上使用未发布的功能,这是非常不吉利的。
但是,一般情况下,您可以检查changelog
以查看您的宝石版本是否足够最新;或者,如果没有,那就是直接的git历史。
您还可以在项目中运行bundle open faker
,并导航源代码以查看您的功能是否存在于已安装的gem中。
以上是关于尝试在Rails中设置rspec测试时获取未初始化的常量Faker :: String的主要内容,如果未能解决你的问题,请参考以下文章
尝试运行 rspec 时,我得到“未初始化的常量 ActiveModel”
Rails - RSpec NoMethodError:未定义的方法