gpt4 book ai didi

ruby-on-rails - 我想在规范中断言 404

转载 作者:数据小太阳 更新时间:2023-10-29 08:11:02 25 4
gpt4 key购买 nike

我想测试重定向到自定义 404、500 错误页面的应用。我在 test.rb 文件中打开了 config.consider_all_requests_local = false 来检查错误页面。现在一切正常,如果路径存在于 rake 路由中,我可以填写字段并使用 capybara 进行断言,例如:

visit signin_path 

问题是如果我给了一个错误的路径

visit signin_path + '/xyz' #xyz is incorrent

visit ('/wrongpage') 

为了检查重定向到我的自定义错误页面,测试用例给出了一个异常并且没有继续执行 expect 语句。这是错误:

Failure/Error: visit ('/wrongpage')

ActionController::RoutingError:
No route matches [GET] "/wrongpage"

#then stack trace is printed here

我也试过检查

expect(page).to raise_error(ActiveRecord::RecordNotFound)

当我尝试获取具有无效 ID 的记录时(如 id = 'xyz' 而不是整数,这会产生 500 错误),这里出现同样的问题,执行停止并且不会继续执行 expect 语句。

我也尝试在互联网上寻找答案,但没有得到我想要的东西,这个 ( https://stackoverflow.com/a/25469175/2924562 ) 很接近,但对于

visit page_path

出现以下错误:

    Failure/Error: visit page_path('wrongpage')

NoMethodError:
undefined method `page_path' for ....

最佳答案

Rails.application.config.action_dispatch.show_exceptions

这就是问题所在!

它的值应该设置为true

可以通过两种方式完成,或者在 test.rb 文件中设置为:

# Raise exceptions instead of rendering exception templates
config.action_dispatch.show_exceptions = true

  before(:all) do
Rails.application.config.action_dispatch.show_exceptions = true
end

此外,不要忘记检查:config.consider_all_requests_local = false,以显示您的自定义错误页面(在您当前的环境中)。

关于ruby-on-rails - 我想在规范中断言 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49974389/

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