ruby - 获取/发布错误响应的 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(/400 Bad Request/)

提前感谢您的任何见解!

最佳答案

此外:

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。

关于ruby - 获取/发布错误响应的 rspec 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26592014/

相关文章:

ruby-on-rails - 将数据从 JSON API 播种到 Ruby on Rails APP

ruby-on-rails - 如何在 Ruby on Rails 中构建一个查询,该查询仅加入一个 has_many 关系的最大值并在该关系上包含一个选择过滤器?

javascript - 如何在 javascript/truffle 中为每个测试创建新的 ethereum/solidity 合约

rspec - 是否有 RSpec 格式化程序可以在规范通过/失败时播放音频文件?

ruby - rake rspec 测试未运行

ruby-on-rails - 我的脚本会发送很多请求吗?

javascript - 测试 jquery 点击回调

testing - 编写质量测试

ruby-on-rails - 用 rails 进行抓取的 rake 任务

ruby-on-rails - 使用 `:has_many :through` 记录关联处理复选框表单