我正在爲我的應用程序編寫集成測試。我熟悉控制器測試和正常的集成測試。但是,我不確定如何在集成測試中測試嵌套資源。我有一個嵌在記分板模型裏面的團隊模型。相關的路線代碼如下。在rails中測試嵌套路由
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
我有驗證設置,這樣的團隊名稱必須存在。問題在於路線。我還有一個與scoreboard_a建立關聯。 teams.yml文件如下。
team_a:
name: team
win: 1
loss: 2
tie: 0
id: 2
scoreboard: scoreboard_a
我得到一個沒有方法的錯誤。錯誤在下面給出。
`NoMethodError: undefined method `scoreboards_teams_path'.
由於團隊嵌套在記分牌顯示頁面內。因此,我沒有可以調用get請求的新操作。我的問題是,我將如何向團隊對象發送帖子請求。我不確定如何做到這一點。我試過查看文檔,但是在嵌套路由上沒有任何東西。我還有其他嵌套在記分板內的對象。因此,理解嵌套路線在軌道中的測試方式真的很長。一如既往,非常感謝任何幫助。謝謝!!