java - 如果它是 WebApplicationException 的子类,我如何验证 HTTP 状态代码?
问题描述
我正在尝试测试我的控制器是否确实会使用 409 冲突的响应代码引发错误。我的控制器如下所示:
if (Object != null) {
return Object;
} else {
throw new WebApplicationException(Response.Status.CONFLICT);
}
在单元测试中,我有这样的事情:
assertThrows(WebApplicationException.class, () -> controller.createObject();
虽然我觉得这个测试不够全面,因为我还没有验证调用的响应代码。如果可能的话,如何做到这一点?
解决方案
您需要将应该抛出异常的代码包含在 try / catch 中,捕获异常,然后从异常对象获取响应并检查其状态代码,而不是断言抛出异常。像这样的东西:
try {
controller.createObject();
assertFail("should have thrown an exception");
} catch (WebApplicationClass ex) {
assertEquals(404, ex.getResponse().getStatusCode());
}
推荐阅读
- python - 时间序列预测股票不起作用
- python - 锁对象只能通过继承在进程之间共享
- regex - 使用 RLIKE 在 Snowflake 存储过程中将 VARCHAR 值转换为 DATE 的 REGEX 不一致
- kalman-filter - 简单 RSSI 模型上的扩展卡尔曼滤波器
- android - 如何检测像 MEDIA_EJECT 和 ACTION_MEDIA_BAD_REMOVAL 这样的 USB 事件?
- python - 有没有办法将列表中的值作为熊猫中的列?我不想重命名列,而是将列表值添加为列
- python - 变量未按预期更新
- swift - 从 Firebase 高效地获取多个图像
- clang - C++ 项目在 clang 切换后从终端编译,但不是从 CLion
- javascript - 如何制作像“Discord”这样的测试语音条?