0

我使用 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 逐步正确地运行调试。

非常感谢

4

0 回答 0