Это первый раз, когда я пишу тестовые примеры для проекта rails, использующего RSpec и FactoryGirl
Когда я запускаю тестовый пример, я получаю следующую ошибку
неправильноколичество аргументов (дано 0, ожидается 1)
Я просмотрел другие посты в стеке над потоком, и они не очень полезны в моем случае.
Что япопробовал
Я пишу тестовый пример для Модели, который называется ImportFeed
, и он выглядит примерно так:
class ImportFeed < ApplicationRecord
belongs_to :staffroom
belongs_to :user, optional: true # We don't have to have a user
validates_presence_of :url, :feed_type
validates :enabled, presence: true, allow_blank: true
def initialize(params)
super(params)
self.enabled = false if self.enabled.blank?
self.default_radius = DEFAULT_RADIUS if self.default_radius.blank?
self.default_days = DAYS_DEFAULT if self.default_days.blank?
end
end
Вот так выглядит мой тестовый пример
require 'rails_helper'
describe JobImporters::JoraJobImporter, '.run' do
it 'should create an instance of ImportFeed' do
feed = ImportFeed::new FactoryGirl.create(:import_feed, :import1)
expect(feed).to be_a ImportFeed
end
end
Это фабрика
FactoryGirl.define do
factory :import_feed do
trait :import1 do
enabled true
feed_type 'example'
staffroom_id 7526
url Faker::Internet::url
end
end
end
Когда я запускаю это, я получаю ошибку, упомянутую в начале этого вопроса,
Если я передаю данные втестовый пример без FactoryGirl, тогда мой тестовый пример работает и проходит, например, если я заменю
feed = ImportFeed::new FactoryGirl.create(:import_feed, :import1)
на
feed = ImportFeed::new enabled: true, staffroom_id: 7526, feed_type: 'example', url: Faker::Internet::url
тестовый пример пройден.
Я действительно будупризнателен, если кто-то может указать мне, что я здесь делаю неправильно.