无法在 Eclipse 中调试 Mockito / JUnit 代码,仅使用 JUnit 即可正常工作
我有运行良好的JUnit测试。将Mockito添加到我的构建中,我尝试在我的JUnit测试中放置一个断点,该测试使用Mockito来模拟一些公共方法。当我尝试在类上运行调试器时,我收到错误“由于缺少行号属性,无法在XXX中安装断点。修改编译器选项以生成行号属性。我检查了我的编译器,我生成行号被选中。
我有运行良好的JUnit测试。将Mockito添加到我的构建中,我尝试在我的JUnit测试中放置一个断点,该测试使用Mockito来模拟一些公共方法。当我尝试在类上运行调试器时,我收到错误“由于缺少行号属性,无法在XXX中安装断点。修改编译器选项以生成行号属性。我检查了我的编译器,我生成行号被选中。
您看到的异常是由尝试调试由 mock() 函数创建的动态生成的空模拟方法引起的。从您的问题来看,看起来您实际上希望使用部分模拟而不是完整模拟,其中仅模拟某些方法,其余调用被委托给实际实现。
要创建部分模拟,应使用 spy() 方法而不是 mock() 方法。所以,使用
MyClass myMock = spy(new MyClass());
而不是
MyClass myMock = mock(MyClass.class);