Ruby on rails 测试ActionController::BadRequest的异常消息

Ruby on rails 测试ActionController::BadRequest的异常消息,ruby-on-rails,exception,minitest,Ruby On Rails,Exception,Minitest,我正在尝试测试一个控制器,该控制器在各种场景下引发ActionController::BadRequest异常。每个场景都向日志提供特定的消息 为了测试,如果我写下以下内容,我将获得通过测试: test“应因缺少数据而引发异常”do 评论后路径 断言\u响应:错误的\u请求 结束 但是,:错误的请求可能是由许多原因造成的。我想测试异常消息的值是否符合预期。有什么方法可以让我访问它吗 如果我尝试按如下所示重写测试,结果是:ActionController::BadRequest应为,但未引发任何

我正在尝试测试一个控制器,该控制器在各种场景下引发
ActionController::BadRequest
异常。每个场景都向日志提供特定的消息

为了测试,如果我写下以下内容,我将获得通过测试:

test“应因缺少数据而引发异常”do
评论后路径
断言\u响应:错误的\u请求
结束
但是,
:错误的请求可能是由许多原因造成的。我想测试异常消息的值是否符合预期。有什么方法可以让我访问它吗

如果我尝试按如下所示重写测试,结果是:ActionController::BadRequest应为,但未引发任何问题

test“应因缺少数据而引发异常”do
exception=assert\u raise ActionController::BadRequest do
评论后路径
结束
assert_equal“缺少数据A”,exception.message
结束
我不明白为什么它说“什么都没提”。在控制器中,调用实际上是:

raise(ActionController::BadRequest.new(),“缺少数据A”)

是否有一种方法可以测试异常消息是否符合预期?

我可以使用以下方法测试异常消息:

test“应因缺少数据而引发异常”do
评论后路径
断言\u响应:错误的\u请求
assert response.body.include?(“缺少数据A”)
结束