无法检测类 XXX,因为它或其超类型之一无法初始化

问题描述 投票:0回答:1

因为jdk17不兼容,所以我改成mockito 4.9.0。这导致 @SuppressStaticInitializationFor 将无法使用,但我需要一些未静态初始化的类

@RunWith(MockitoJUnitRunner.class)
//@PrepareForTest({NonWorkingDayHelper.class, TaskService.class})
//@SuppressStaticInitializationFor("com.ecquaria.cloud.entity.nonworkingday.NonWorkingDayHelper")
public class TaskManagerTest {

    @Before
    public void setUp(){
        Mockito.mockStatic(NonWorkingDayHelper.class);
        Mockito.mockStatic(TaskService.class);
    }
    @Test
    public void testUpdateSLARemainInDays() throws Exception {
        Mockito.when(NonWorkingDayHelper.isNonWorkingDay(any(Date.class))).thenReturn(false);
        Mockito.when(TaskService.getInstance()).thenReturn(Mockito.mock(TaskService.class));
        TaskManager.updateSLARemainInDays();

    }
}

error info

在mockito 4.X中,有什么方法可以代替@SuppressStaticInitializationFor

unit-testing mockito java-17
1个回答
0
投票

我遇到了类似的问题,我将mockito-core升级到mockito 5.11.0,并将junit 4升级到junit 5。

也从 @RunWith(MockitoJUnitRunner.class) 更改为 @ExtendWith(MockitoExtension.class)

@之前 -> @BeforeEach/@BeforeAll

不要忘记更改 Test 的导入

导入org.junit.Test;

导入 org.junit.jupiter.api.Test;

© www.soinside.com 2019 - 2024. All rights reserved.