如何使测试引发 404 错误而不是 ActiveRecord::RecordNotFound 异常?

问题描述 投票:0回答:0

我正在尝试编写一个测试来确认我的应用程序发送了一个

404 Not Found
以响应对无效记录的请求(比如带有
id=0
的记录)。

我的测试代码是这样的:

get '/pluralized_name_for_my_resource/0', as: :json
assert_response :not_found, "Doesn't return 404 Not Found for invalid id"

如果我将相应的 URL 插入浏览器,例如

http://localhost:3000/pluralized_name_for_my_resource/0.json
,应用程序在内部引发 activerecord 异常(并在日志中打印一条关于它的消息)但正确响应
404 Not Found
.

然而,当我运行测试时,异常的处理方式不同。测试中止并在第一行

get '/pluralized_...
返回,并报告为错误而不是通过测试。

我怎样才能使我的测试环境以与我的开发环境相同的方式处理异常,以便我的测试通过?

ruby-on-rails minitest
© www.soinside.com 2019 - 2024. All rights reserved.