单元测试RestController确实返回不在ResponseEntity内的强类型对象

问题描述 投票:1回答:1

我有以下控制器示例:

@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);

因为确实响应不是ResponseEntity类型。我该如何断言?预先感谢!

java spring unit-testing assert spring-restcontroller
1个回答
0
投票

如@JBNizet在评论中指出:

“这里没有必要进行测试。这是一个单元测试。它测试您的代码。Spring保证响应状态为200。它已经过测试。如果您真的想测试响应,则需要集成测试,而不是单元测试。“

实际上,仅当有机会返回200以外的其他值时,我才必须测试响应状态。在这种情况下,我将使用ResponseEntity作为从控制器返回的类型,这将允许我对其进行测试。 >

© www.soinside.com 2019 - 2024. All rights reserved.