У меня есть модель UrlContent, и я пытаюсь написать тест rspec для вызова API на страницу индекса для Json. Однако всякий раз, когда я запускаю rspec, он выдает такую ошибку:
Failure/Error: content { Faker::String }
NameError:
uninitialized constant Faker::String
Почему он выдает эту ошибку, если фейкер для атрибута, по-видимому, уже настроен правильно?
Меня это сбивает с толку, потому что в моем файле spec / factory / 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
2 ответа
Faker::String
был добавлен в фейкер-гем 9 дней назад 24 декабря и последняя версия faker (1.8.7) была опубликована 22 декабря. Вам нужно будет использовать версию из Github, чтобы использовать Faker::String
. Укажите репозиторий git в вашем Gemfile
, как показано ниже:
gem 'faker', git: 'https://github.com/stympy/faker'
Faker::String
был добавлен в рубиновый драгоценный камень 9 дней назад а>.
Самая последняя версия гема на момент написания: 1.8.7
; который был выпущен 22 декабря (т.е. до добавления Faker::String
).
Если вы хотите использовать эту функцию драгоценного камня, вам нужно указать сборщику, чтобы он использовал главную ветвь репозитория:
gem 'faker', git: 'https://github.com/stympy/faker'
... или создайте драгоценный камень локально из исходного кода.
git clone git@github.com:stympy/faker.git
rake install
Очень не повезло, что вы решили использовать невыпущенную функцию в активно поддерживаемом геме, таком как этот.
Однако в целом вы можете проверить changelog
, чтобы проверьте, достаточно ли актуальна ваша версия гема; или, в противном случае, напрямую git history.
Вы также можете запустить bundle open faker
в своем проекте и просмотреть исходный код, чтобы увидеть, существует ли ваша функция в установленном геме.
Похожие вопросы
Новые вопросы
ruby-on-rails
Ruby on Rails - это полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Ruby. Он следует популярной модели фреймворка MVC и известен своим подходом «соглашение поверх конфигурации» при разработке приложений.