0


单元测试 Mock 对象为null

场景:单元测试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

importstaticorg.powermock.api.mockito.PowerMockito.*;
标签: java unit mock

本文转载自: https://blog.csdn.net/l_mloveforever/article/details/123974218
版权归原作者 Adam`南帝·梁 所有, 如有侵权,请联系我们删除。

“单元测试 Mock 对象为null”的评论:

还没有评论