当前位置: 首页 > 工具软件 > null > 使用案例 >

单元测试 Mock 对象为null

符功
2023-12-01

场景:单元测试mock对象,执行时为null或值不符。

单元测试中mock方法并doReturn了mock数据,但是实际的方法在后面使用的参数却是null。
断点调试后发现调用方法前和在方法中的对象的id并非一个;
重复浏览调用代码,发现问题在于单测中重复mock一个方法,doReturn的mock数据被覆盖了

问题原因:

doReturn(selectEntity).when(selectMapper).selectById(any());

首先确定doReturn的对象是否给属性赋值

尽量用anyLong()等指定类型(方法入参类型相同)

前两步都不生效的话就使用 isNull()

doReturn(selectEntity).when(selectMapper).selectById(isNull());

建议使用Power Mockito

import static org.powermock.api.mockito.PowerMockito.*;
 类似资料: