版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32768743/article/details/88342736
遇到mockk的一个坑
如果使用@RelaxedMockK
注解,默认会给所有用到的方法mock,但是这个mock的结果可能不像自己想的那样美好,比如我有这样的一段调用
OrderDetailDTO orderDetailDTO = orderService.getOrderDetailDTOByOrderId(order.getOrderId());
我忘了手动mock,结果导致
List<OrderItemDTO> orderItemDTOList = orderDetailDTO.getOrderItemDTOList();
if (!CollectionUtils.isEmpty(orderItemDTOList)) {
// xxx代码
}
这一段执行了,但是调试器显示orderItemDTOList
为空,最后导致
List<OrderItemVO> productVOList = orderItemDTOList.stream()
.filter(Objects::nonNull)
.collect(Collectors.toList());
这样的代码总是报无法转换为List,非常烦恼,且找不到错误源
最后,手动把所有调用方法,有返回值的地方mock了,才解决