如何解决assertEquals 中带有方括号的 Java 事件驱动开发问题
我进行经典的事件驱动开发测试。
// 给定
// 当
// then
then(response.getStatus()).isEqualTo(HttpStatus.OK.value());
then(response.getContentAsString()).isEqualTo(
jsonRequestProduct.write(List.of(newProduct)).getJson());
我会从第二行代码得到响应。
org.opentest4j.AssertionFailedError:期望:...但不是。
Expected :"[{"id":1,"description":"iPhone 33","price":599.99}]"
Actual :"{"id":1,"price":599.99}"
问题:如何去掉“[ ]”以便我的测试通过?
感谢您的建议。
更新:
必填类型:List
提供:产品
这就是我的控制器的样子。
@PutMapping("/update")
public ResponseEntity<Product> updateProduct(@RequestBody Product product) {
return ResponseEntity.ok(productServiceImpl.updateProduct(product));
}
解决方法
删除 List.of
调用。您的断言告诉您它需要一个列表/数组,但只有一个对象。
如果你这样做,测试就会通过。
@PutMapping("/update")
public Product updateProduct(@RequestBody Product product) {
return productServiceImpl.updateProduct(product);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。