У меня есть несколько классов тестов, которые должны проверять, что функции GLFW были вызваны. Но когда я хочу, чтобы выполнить все тесты в IntelliJ я получаю ошибку:JUnit & Powermock: родная библиотека уже загружена в другой загрузчик классов
Native Library lwjgl.dll already loaded in another classloader
я использую Powermock, чтобы убедиться, что статические методы были названы:
@RunWith(PowerMockRunner.class)
@PrepareForTest({GLFW.class})
public class GlfwWindowImplTest {
// ...
@Test
public void update_swapsBufferAndPollsEvents() {
GlfwWindowImpl target = new GlfwWindowImpl(1L);
mockStatic(GLFW.class);
target.update();
verifyStatic();
GLFW.glfwSwapBuffers(1L);
verifyStatic();
GLFW.glfwPollEvents();
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest({GLFW.class})
public class GlfwWindowSystemImplTest {
// ...
@Test(expected = GlfwInitializeException.class)
public void initialize_throwsExceptionIfGlfwInitFails() {
GlfwWindowSystemImpl target = new GlfwWindowSystemImpl();
mockStatic(GLFW.class);
when(GLFW.glfwInit()).thenReturn(GL_FALSE);
target.initialize();
}
}
'@PrepareForTest ({GLFW.class})' ammend класс и загрузить его в новый загрузчик классов. – talex
@Exhauzt Вы когда-нибудь получали решение этой проблемы? Я не могу понять, что говорит вам следующее решение. У вашего исходного кода уже есть '@PrepareForTest ({GLFW.class})' ... так что вы должны делать по-другому? Спасибо – Nova
Нет, я на самом деле не нашел решения, но вскоре должен был сделать еще один проект ... Поэтому я не слишком много копал в этой теме, чтобы найти решение. И я тоже не понимаю этого решения. – danielspaniol