Тестирование нескольких ассоциаций с musta, должно относиться к использованию внешнего ключа - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь проверить ассоциации моделей, но когда я запускаю тест, он никогда не проходит.

Пробовал по документации, но безуспешно.

Моя сущность Story имеет 3 ассоциации с одной и той же сущностью: Пользователь

class Story < ApplicationRecord
  belongs_to :creator, class_name: 'User'
  belongs_to :writer, class_name: 'User'
  belongs_to :reviewer, class_name: 'User'
end

Связи, определенные на стороне пользователя:

has_many :created_stories, class_name: 'Story',
    foreign_key: 'creator_id'
  has_many :written_stories, class_name: 'Story',
    foreign_key: 'writer_id'
  has_many :reviewed_stories, class_name: 'Story',
    foreign_key: 'reviewer_id'

Тест:

class StoryTest < ActiveSupport::TestCase
  should belong_to(:creator).class_name('User').with_foreign_key('creator_id')
  should belong_to(:writer).class_name('User').with_foreign_key('writer_id')
  should belong_to(:reviewer).class_name('User').with_foreign_key('reviewer_id')
end

Хотя, когда я запускаю тест, я получаю:


Error:
StoryTest#test_: Story should belong to reviewer class_name => User. :
Mysql2::Error: Duplicate entry '' for key 'index_users_on_email'

Уже пробовал, добавив внешний ключ на модель Story, все еще имели те же результаты.

...