模拟调用实用程序类的静态方法

时间:2019-04-20 12:23:12

标签: java unit-testing junit mockito

我需要为方法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) {

2 个答案:

答案 0 :(得分:0)

您不能使用Mockito模拟静态方法,但是您可以在可能的情况下操纵输入数据,以便将其输入静态方法并返回所需的值。您可以在测试方法中传递message = null以便您可以测试您的方法。

答案 1 :(得分:0)

您无法使用Mockito模拟静态方法。如果需要模拟静态方法,请尝试使用PowerMockito

例如:PowerMockito.mockStatic(JsonUtility.class);