2016-02-26 83 views
1

我正在爲我的應用程序編寫集成測試。我熟悉控制器測試和正常的集成測試。但是,我不確定如何在集成測試中測試嵌套資源。我有一個嵌在記分板模型裏面的團隊模型。相關的路線代碼如下。在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請求的新操作。我的問題是,我將如何向團隊對象發送帖子請求。我不確定如何做到這一點。我試過查看文檔,但是在嵌套路由上沒有任何東西。我還有其他嵌套在記分板內的對象。因此,理解嵌套路線在軌道中的測試方式真的很長。一如既往,非常感謝任何幫助。謝謝!!

回答