Ruby 针对get/post错误响应的rspec测试

Ruby 针对get/post错误响应的rspec测试,ruby,testing,rspec,Ruby,Testing,Rspec,我正在尝试测试http GET错误响应消息,但似乎找不到这方面的任何信息或示例 预期的错误响应为: { "success": false, "code": 400, "message": "ERROR: This is the specific error message" } 这会捕获“错误请求”,但如何验证错误响应主体中的“消息” expect {get "<url that generates a bad request>"}.to raise_error(/40

我正在尝试测试http GET错误响应消息,但似乎找不到这方面的任何信息或示例

预期的错误响应为:

{
  "success": false,
  "code": 400,
  "message": "ERROR: This is the specific error message"
}
这会捕获“错误请求”,但如何验证错误响应主体中的“消息”

expect {get "<url that generates a bad request>"}.to raise_error(/400 Bad Request/)
期望{get”“}。引发_错误(/400错误请求/)

提前感谢您的任何见解

请求返回响应,而非异常:

it 'returns 400 status' do
  get '/my_bad_url'
  expect(response.status).to eq 400
end
您还可以阅读,以便更好地了解控制器规格。

在添加此内容时:

it 'returns 400 status' do
  get '/my_bad_url'
  expect(response.status).to eq 400
end
你可以写

expect(JSON.parse(response.body)["message"]).to eq("ERROR: This is the specific error message")

或者如果呈现html,则不使用JSON.parse。

(我应该提到我使用的是rspec 2.4.1)当我尝试此操作时,我的脚本从未通过“get”行,rspec报告:RestClient::BadRequest:400 Bad Request它从未有机会检查响应?