我希望能够在Mockito Spy对象上逐步调试调试器,特别是Eclipse。举个例子,假设我有下面要测试的课程:
public class someClass(){
public someMethod(){
System.out.println("Begin someMethod call");
//some code in the method
System.out.println("End someMethod call");
}
}
让我们说我有一个Mockito课程如下:
@RunWith(MockitoJUnitRunnerclass)
public class SomeMethodTest {
@Spy SomeClass someSpiedObject;
@Test
public final void testSomeMethod(){
//some code in the test method
someSpiedObject.someMethod();
/some tests
}
我遇到的问题是,如果我在 //在测试方法中设置一些代码 并在 <处设置调试断点em> //方法中的一些代码 ,将会到达第一个断点,但第二个断点不会到达。我知道代码是在系统输出打印到控制台时运行的。我知道,作为一个间谍对象,它不是相同的代码,调试器不应该工作。我也知道,如果它是Mock对象而不是间谍,可以使用VerboseLogging()。我真正的问题是,如何逐步完成代码,好像它是一个普通的对象?有调试框架可以帮助吗?我不知道Mockito的特征吗?我最终将不再需要它作为Spy对象并且可以简单地测试它,但是直到静态调用被重构。
答案 0 :(得分:0)
在IntelliJ上,我遇到了同样的问题。我仅在测试我的服务中的一种方法。
我发现的唯一解决方案是在测试代码中放置一个断点,然后逐步进入(F7)调试实际代码的真正方法。很烂,但这是我到目前为止发现的唯一方法。