В проекте Rails (rails 5.2.2, ruby 2.4.1) у меня определены 2 ресурса, один с именем "groups" и один с именем "products".Объекты продукта имеют отношение принадлежат к группе.Я хотел создать группу общих примеров rspec, которая может тестировать оба ресурса, но у меня возникли некоторые проблемы с действиями «создать» и «обновить» для «продуктов».
Я хотел настроить общий наборпримеров групп, которые принимают хеш, используемый для создания новой записи в качестве параметра.Затем группу примеров можно вызывать как в «groups_spec.rb», так и в «products_spec.rb».У меня есть приспособления для «групп» и «продуктов». Ниже приведен пример кода для «request / products_spec.rb», который вызывает общие примеры:
RSpec.describe "Products", type: :request do
fixtures :groups, :products
it_should_behave_like("modify data checks",
Rails.application.routes.url_helpers.api_products_path,
Product,
{ product: {
name: "New Product",
description: "Test product to add or modify",
group_id: Group.first.id,
label: "NP"
} })
end
end
Проблема с продуктами заключается в том, что новыйДля данных продукта требуется идентификатор_группы, который должен быть действительным внутри контекста группы примеров, но я должен быть в состоянии получить идентификатор_группы извне группы примеров, чтобы передать его.
Я предполагаю, чтоРеальный ответ состоит в том, чтобы реорганизовать структуру группы примеров, поэтому я приму рекомендацию о том, как реструктурировать общую группу примеров. Конечно, если я просто делаю что-то не так, я тоже приму этот ответ.