gpt4 book ai didi

ruby-on-rails - 在 rails 中测试嵌套路由

转载 作者:行者123 更新时间:2023-11-28 20:40:30 25 4
gpt4 key购买 nike

我正在为我的应用程序编写集成测试。我熟悉 Controller 测试和正常的集成测试。但是,我不确定如何在集成测试中测试嵌套资源。我有一个嵌套在记分牌模型中的团队模型。相关路线代码如下。

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 中测试嵌套路由将大有帮助。一如既往,非常感谢任何帮助。谢谢!!

最佳答案

Rails 指南中有一个关于嵌套帮助程序资源的部分,应该足以回答您的问题:http://guides.rubyonrails.org/routing.html#nested-resources

您可以使用命名助手调用新操作:

new_scoreboard_team_path

您的名为 helper 的帖子将是

scoreboard_teams_path

你的代码说 scoreboards_teams_path

关于ruby-on-rails - 在 rails 中测试嵌套路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35656785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com