Модель Organization
имеет много Events
, а Event
всегда относится к Organization
.Тест контроллера с RSPEC и FactoryGirl с ошибкой: 1 получено: 0
Мой Events controller
тест, файл controllers/events_controller_spec.rb
является:
require 'rails_helper'
RSpec.describe EventsController, type: :controller do
describe "POST #create" do
context "with valid attributes" do
it "create new event" do
post :create, event: attributes_for(:event)
expect(Event.count).to eq(1)
end
end
end
end
Это мой factories/organizations.rb
файл:
FactoryGirl.define do
factory :organization do
organization_name { Faker::Company.name }
end
factory :invalid_organization, class: Organization do
organization_name ''
end
end
Это мой factories/events.rb
файл:
FactoryGirl.define do
factory :event do
event_description { Faker::Lorem.sentence(3) }
host_name { Faker::Internet.domain_name }
organization { create(:organization) }
end
end
На основании вышеизложенного Я предполагаю, что organization
создается до создания любого event
.
Мой тест не соответствует этой ошибке.
$ rspec spec/controllers/events_controller_spec.rb
Failures:
1) EventsController POST #create with valid attributes create new event
Failure/Error: expect(Event.count).to eq(1)
expected: 1
got: 0
(compared using ==)
# ./spec/controllers/events_controller_spec.rb:9:in `block (4 levels) in <top (required)>'
Finished in 1.53 seconds (files took 9.03 seconds to load)
1 example, 1 failure
Не знаете, как исправить это и пройти тест?
Сейчас я получаю это: Неудачи: 1) EventsController POST #create с действительными атрибутами создать новое событие Failure/ошибка : expect (post: create, {event: attributes_for (: event)}). изменить (Event,: count) .by (1) ожидается #count, который изменился на 1, но не был предоставлен блок #. /spec/controllers/events_controller_spec.rb:10:in 'block (4 уровня) в ' –
попробуйте обновленный ответ –
Теперь ошибка se Эмс быть одни и те же: Неудачи: 1) EventsController POST #create с действительными атрибутами создание нового событием Failure/ошибки: ожидать делать сообщений: создание, {событие: attributes_for (: событие)} изменения end.to (Событие,: count) .by (1) Ожидаемый #count изменился на 1, но был изменен на 0 # ./spec/controllers/events_controller_spec.rb:8:in 'block (4 levels) in ' –