【问题标题】:rspec testing for get/post error responsesrspec 测试获取/发布错误响应
【发布时间】:2014-10-27 16:18:37
【问题描述】:

我正在尝试测试 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/)

提前感谢您的任何见解!

【问题讨论】:

    标签: ruby testing rspec


    【解决方案1】:

    除此之外:

    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 It从来没有机会检查响应?
    【解决方案2】:

    请求返回响应,而不是异常:

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

    您也可以阅读docs,以更好地了解控制器规格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多