gpt4 book ai didi

ruby-on-rails - 如何测试 Rails 4.x 中不存在路由

转载 作者:行者123 更新时间:2023-12-04 05:49:16 26 4
gpt4 key购买 nike

如果我有一个定义的路由,我该如何测试它是否返回 404?

这是routes.rb的相关部分

resources :reservations, only: [:index,:create,:destroy]

您可以创建、销毁和列出预留,但不能更改它们。

接下来的测试是:

patch :update, id: @reservation, reservation: { somefield: "data" }
assert_response :missing

这应该通过,因为缺少路由应该返回 404。相反,我得到一个 UrlGenerationError:

ActionController::UrlGenerationError: No route matches {:action=>"update", :controller=>"reservations", :id=>"980190962", :reservation=>{:somefield=>"data"}}

我明白了;来自测试的 patch 调用无法生成 URL。那么我该如何测试这样的 URL 调用是否会生成 404?

最佳答案

您实际上可以断言已抛出这样的错误,这对您来说是否足够?

assert_raise ActionController::UrlGenerationError do
patch :update, id: @reservation, reservation: { somefield: "data" }
end

关于ruby-on-rails - 如何测试 Rails 4.x 中不存在路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30262023/

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