【发布时间】:2016-02-26 16:23:02
【问题描述】:
我正在为我的应用程序编写集成测试。我熟悉控制器测试和正常的集成测试。但是,我不确定如何在集成测试中测试嵌套资源。我有一个嵌套在记分牌模型中的团队模型。相关路线代码如下。
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 建立了关联。 team.yml 文件如下所示。
team_a:
name: team
win: 1
loss: 2
tie: 0
id: 2
scoreboard: scoreboard_a
我收到一个无方法错误。错误如下。
`NoMethodError: undefined method `scoreboards_teams_path'.
由于团队嵌套在记分牌显示页面中。因此,我无法调用获取请求的新操作。我的问题是,我将如何调用团队对象的发布请求。我不确定该怎么做。我试过查看文档,但嵌套路由上真的没有任何东西。我还有其他嵌套在记分牌内的对象。因此,了解如何在 Rails 中测试嵌套路由真的会有很长的路要走。与往常一样,非常感谢任何帮助。谢谢!!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 testing