簡體   English   中英

測試Rails中的嵌套路線

[英]Testing nested routes in 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請求的新操作。 我的問題是,我將如何向團隊對象發出發帖請求。 我不確定該怎么做。 我嘗試瀏覽文檔,但嵌套路線上確實沒有任何內容。 我還有嵌套在計分板上的其他對象。 因此,了解如何在鐵軌中測試嵌套路線將大有幫助。 與往常一樣,我們非常感謝您的幫助。 謝謝!!

Rails指南中有關於嵌套幫助程序資源的部分,該部分應足以回答您的問題: http : //guides.rubyonrails.org/routing.html#nested-resources

您可以使用命名的幫助程序調用新操作:

new_scoreboard_team_path

名為helper的帖子將是

scoreboard_teams_path

您的代碼顯示scoreboards_teams_path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM