我使用 TestNG、Mockito-inline(模拟静态)编写了一个测试用例来测试我的服务(具有被测方法 - MUT)。我的问题是:当我在 MUT 设置断点时,Eclipse 的光标无法在这些断点处停止。如果在测试代码处设置断点,光标会停止并正确突出显示。
我试图回到 Mockito-core(但不能再使用 Mockito-static,相同的版本 3.11.2)然后每个断点(在测试代码和我的服务中)都可以正常工作。
这是详细信息:
一个测试用例:这个测试文件的断点工作正常
try (MockedStatic<myClass> mockMyClass = Mockito.mockStatic(myClass.class)) {
mockMyClass.when(() -> myClass.get(anyInt()).thenReturn(myReturnObject);
myService.myMethodUnderTest();
}
我的服务代码:另一个文件(myService)有很多方法(这些方法——myMethodUnderTest调用静态方法myClass.get(int value))
public void myMethodUnderTest(int value) {
line 1; // if set breakpoint here, Eclipse's cursor does not stop, everything works
normally as without this breakpoint. This code line must be run without any
conditions
myClass.get(value); // the static mock works correctly
line n; // If set breakpoint -> the same line 1
}
这是我的详细环境:Ubuntu 20.04、Eclipse 2018-12、Java 1.8、Spring 5.1.9、TestNG 7.4.0、Mockito 3.11.2(核心和内联)
我尝试使用 Mockito-inline 3.8.0 但同样的问题。
当我逐步调试(F5,F6)时,Eclipse'cursor 在被测方法中运行时也不正确(仍然突出显示一行但逻辑错误)(在测试代码中运行时仍然正确)。
任何人都可以帮助解决这个问题,使用 Mockito-inline 逐步正确地运行调试。
非常感谢