我有以下控制器示例:
@RequestMapping(value = "/pickcard", method = RequestMethod.POST)
public Card pickCard(@RequestParam String name) {
return _deckManager.pickCardForPlayer(name);
}
如您所见,此端点返回的 Card 未封装在响应实体中,但我仍然想评估端点的结果是否成功,例如 200。 在我的单元测试中,我不能这么说:
var response = deckController.pickCard("Test");
assertThat(response.getStatusCodeValue()).isEqualTo(200);
因为响应确实不是响应实体类型。我该如何做这个断言?提前感谢!
正如@JBNizet在评论中指出的那样:
"这里没有测试的意义。这是一个单元测试。它测试您的代码。Spring 保证响应状态为 200。它已经过测试。如果你真的想测试响应,你需要一个集成测试,而不是单元测试。
在实践中,只有当有机会返回 200 以外的内容时,我才必须测试响应状态,在这种情况下,我将使用 ResponseEntity 作为从控制器返回的类型,这将允许我对其进行测试。