Я писал тесты интеграции для своей заявки. Я знаком с проверками контроллера и обычным тестированием интеграции. Тем не менее, я не уверен, как тестировать вложенные ресурсы при тестировании интеграции. У меня есть модель команд, которая встроена в модель табло. Соответствующий код маршрута приведен ниже.Тестирование вложенных маршрутов в рельсах
resources :scoreboards do
resources :teams, only: [:edit, :create, :destroy, :update]
end
Я хочу проверить все важные рабочие процессы для команд. Например, недействительное и действительное создание команд. Тестовый код написан ниже.
def setup
ActionMailer::Base.deliveries.clear
@scoreboard = scoreboards(:scoreboard_a)
end
test 'Invalid creation of the teams' do
assert_no_difference 'Team.count' do
post scoreboards_teams_path(@scoreboard), team: {name: " ",
win: 0,
loss: 0,
tie: 0 }
end
end
У меня есть проверка, настроенная таким образом, чтобы имя команды присутствовало. Проблема связана с маршрутами. У меня также есть ассоциация, созданная с помощью табло_базы. Файл teams.yml приведен ниже.
team_a:
name: team
win: 1
loss: 2
tie: 0
id: 2
scoreboard: scoreboard_a
У меня нет ошибки метода. Ошибка приведена ниже.
`NoMethodError: undefined method `scoreboards_teams_path'.
Так как команды вложены внутрь табло показывают страницу. Поэтому нет нового действия, на которое я могу вызвать запрос get. Мой вопрос в том, как я могу вызвать запрос на отправку для объекта команд. Я не совсем уверен, как это сделать. Я пробовал просматривать документацию, но на самом деле ничего нет на вложенных маршрутах. У меня есть другие объекты, которые также встроены в табло. Поэтому понимание того, как вложенные маршруты тестируются в рельсах, действительно будет иметь большое значение. Как всегда, любая помощь очень ценится. Благодаря!!