我试图测试一个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/)
提前感谢任何见解!
答案 0 :(得分:5)
请求返回响应,而不是异常:
it 'returns 400 status' do
get '/my_bad_url'
expect(response.status).to eq 400
end
另外,您可以阅读docs,以便更好地了解控制器规格。
答案 1 :(得分:3)
除此之外:
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。