我有以下 Controller 示例:
@RequestMapping(value = "/pickcard", method = RequestMethod.POST)
public Card pickCard(@RequestParam String name) {
return _deckManager.pickCardForPlayer(name);
}
正如您所看到的,此端点返回一个未封装在响应实体中的卡,但我仍然想评估端点的结果是否成功,例如 200。 在我的单元测试中我不能这样说:
var response = deckController.pickCard("Test");
assertThat(response.getStatusCodeValue()).isEqualTo(200);
因为响应确实不是 ResponseEntity 类型。我该如何做这个断言?提前致谢!
最佳答案
正如@JBNizet 在评论中指出的:
“这里没有必要测试它。这是一个单元测试。它测试您的代码。Spring 保证响应状态将为 200。它已经过测试。如果您确实想测试响应,则需要集成测试,而不是单元测试。”
实际上,只有当有机会返回 200 以外的内容时,我才必须测试响应状态。在这种情况下,我将使用 ResponseEntity 作为 Controller 的返回类型,这将允许我对其进行测试。
关于java - 单元测试 RestController 确实返回不在 ResponseEntity 内的强类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59593999/