Как вы тестируете has_many: через ассоциацию с использованием фикстур в Rails? - PullRequest
1 голос
/ 02 августа 2020

Я пытаюсь настроить тестовую среду « omakase » в Rails, что означает minitest с фикстурами, и мне сложно настроить тестовые фикстуры для ассоциации has_many :through. rails API сообщает , что «ActiveRecord отражает класс модели прибора и обнаруживает ассоциации has_and_belongs_to_many». , Я ожидал, что мои приборы могут работать так же, как отношения HABTM, например:

class Project < ApplicationRecord
  has_many :project_categories
  has_many :categories, through: :project_categories
end

class ProjectCategory < ApplicationRecord
  belongs_to :category
  belongs_to :project
end


class Category < ApplicationRecord
  has_many :project_categories
  has_many :projects, through: :project_categories
end

test / fixtures:

project_one:
  title: Project One
  categories: category_a, category_b

category_a:
  name: Category A

category_b:
  name: Category B

Итак, чтобы написать контроллер или систему тест, который использует приспособления для тестирования создания нового проекта, нужно ли мне также настроить приспособление projects_categories.yml для таблицы соединений? Или мне нужно указать project_one в светильниках обеих моих категорий? Или мне нужно указать связь для всех трех - фикстур Project и Categories, а также фикстуры для таблицы соединений?

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

Что такое «ванильный» способ сделать это с помощью minitest и fixtures?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...