У меня есть образец тестового класса, в котором я хочу имитировать статический класс. Мой build.gradle похож на
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.2.0'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.2.0'
testRuntime group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.2.0'
testRuntime("org.junit.platform:junit-platform-launcher:1.1.1")
testCompile group: 'org.powermock', name: 'powermock-api-mockito2', version: '2.0.0-beta.5'
testCompile group: 'org.mockito', name: 'mockito-core', version: '2.21.0'
testCompile group: 'org.mockito', name: 'mockito-junit-jupiter', version: '2.21.0'`
Когда я пробую свой тестовый пример как
@ExtendWith(MockitoExtension.class)
@PrepareForTest(MyUtil.class)
public class MyTest {
@Test
public void shouldCheckIfSyncTimeIsAboveThreshold() {
mockStatic(MyUtil.class);
when(MyUtil.getValue()).thenReturn(5));
}
Но когда я запустил это, у меня появилось исключение вроде
org.powermock.api.mockito.ClassNotPreparedException:
The class MyUtil not prepared for test
Есть ли способ добиться того же?
@Ciaran Whyte Вы имеете в виду что-то вроде этого? Макет статических методов в JUnit5 с помощью PowerMockito
MockitoExtension
не поддерживает Powermock.
Таким образом, не зарегистрировано расширение, которое обрабатывало бы @PrepareForTest(MyUtil.class)
.
Для получения подробной информации о том, как использовать Powermock, посетите веб-страница проекта.
Я не видел в этой документации ничего, что показывало бы, как интегрироваться с JUnit 5.
Возможный дубликат PowerMockito ClassNotPreparedException