mockito 对实用工具类的静态方法的模拟调用

t98cgbkg  于 2022-11-08  发布在  其他
关注(0)|答案(3)|浏览(304)

我需要为processNotification方法编写一个单元测试,但是这个方法在内部调用JsonUtility.getNotificationDTOFromMessage
当调用这个函数时,我需要返回值为null。我们如何使用Mockito来实现这一点?
我无法更改代码,因为它不归我所有。

@Override
public void processNotification(String message) throws IOException {
    logger.info(" Processing the notifications");
    NotificationDTO notification = 
    JsonUtility.getNotificationDTOFromMessage(message);
    if (null == notification) {
brgchamk

brgchamk1#

不能使用Mockito模拟静态方法。如果需要模拟静态方法,请尝试使用PowerMockito
例如:PowerMockito.模拟静态(JsonUtility.class);

eivgtgni

eivgtgni2#

你不能使用mockito来模拟静态方法。但是如果可能的话,你可以操纵你的输入数据,这样它将进入静态方法,并返回你want.you可以从你的测试方法中传递的值message = null。这样你就可以测试你的方法了。

g0czyy6m

g0czyy6m3#

现在新版本的Mockito支持静态方法模拟。无需使用PowerMockito只需将您的版本升级到3.4.0 +

相关问题