因为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();
}
}
在mockito 4.X中,有什么方法可以代替@SuppressStaticInitializationFor
我遇到了类似的问题,我将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;