我需要为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) {
3条答案
按热度按时间brgchamk1#
不能使用Mockito模拟静态方法。如果需要模拟静态方法,请尝试使用PowerMockito
例如:PowerMockito.模拟静态(JsonUtility.class);
eivgtgni2#
你不能使用mockito来模拟静态方法。但是如果可能的话,你可以操纵你的输入数据,这样它将进入静态方法,并返回你want.you可以从你的测试方法中传递的值message = null。这样你就可以测试你的方法了。
g0czyy6m3#
现在新版本的Mockito支持静态方法模拟。无需使用PowerMockito只需将您的版本升级到3.4.0 +