如何使用调试器逐步执行Mockito间谍对象?

时间:2017-08-15 19:42:57

标签: eclipse debugging mockito spy

我希望能够在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对象并且可以简单地测试它,但是直到静态调用被重构。

1 个答案:

答案 0 :(得分:0)

在IntelliJ上,我遇到了同样的问题。我仅在测试我的服务中的一种方法。

我发现的唯一解决方案是在测试代码中放置一个断点,然后逐步进入(F7)调试实际代码的真正方法。很烂,但这是我到目前为止发现的唯一方法。