В моем приложении на Rails есть модель, называемая «доступность», которая позволяет поставщикам устанавливать свою доступность (то есть время работы).Таким образом, доступности принадлежат поставщикам и пользователям принадлежат, а пользователям - поставщики has_many и доступность поставщиков - has_many.
Я пытался создать тесты Rspec для своего действия доступности # уничтожить.Конкретный тест, на который я ссылаюсь:
#spec/controllers/availabilities_controller_spec.rb
require 'rails_helper'
RSpec.describe AvailabilitiesController, type: :controller do
describe "availabilities#destroy action" do
it "should allow a user who created the availability to destroy it"
availability = FactoryBot.create(:availability)
sign_in availability.user
delete :destroy, params: { id: availability.id, vendor_id: availability.vendor_id}
availability = Availability.find_by_id(availability.id)
expect(availability).to eq nil
end
end
end
Однако, когда я запускаю этот тест, я получаю следующую ошибку:
"Произошла ошибка при загрузке ./spec/controllers/availabilities_controller_spec.Ошибка / Ошибка: user = FactoryBot.create (: user)
ActiveRecord :: RecordInvalid: Ошибка проверки: электронная почта уже получена "
Однако я использую фабричного бота для своих фабрики у меня есть пользовательская фабрика для запуска в виде последовательности (см. ниже):
FactoryBot.define do
factory :user do
sequence :email do |n|
"dummyEmail#{n}@gmail.com"
end
password "secretPassword"
password_confirmation "secretPassword"
confirmed_at Time.now
end
end
Как можно уже получить электронное письмо?Чем можно объяснить эту ошибку?