也许这会适得其反,我不知道,但现在我需要一个 IntelliJ 中的调试器,它知道 EasyMock 模拟,尤其是模拟方法实际返回的内容。
例如,我有一个传输接口ITransport
,它有一些必须模拟的方法,而我只希望一些方法返回一些东西。例如
ITransport myTransport = createMock(ITransport.class);
我希望 myTransport.getID() 返回一个模拟的 ID 10。
expect(myTransport.getID()).andReturn(10);
对于 ID 10,我希望调用一次方法,
expect(myTransport.publish(any(...)));
expectLastCall.once();
传输类中的某些内容中断并且myTransport
未被调用,并且我的测试失败。知道我只想用调试器单步执行代码来检查我的测试失败的原因。所以我添加了一个断点来验证模拟myTransport
对象的值。但是他们都说“空”,甚至是ID。所以我假设,经过一些简短的调查,这是因为 EasyMock 模拟类的原因,它并没有真正用值更新对象(这听起来很合理),而是在调用方法时在运行时返回模拟值。
那么,是否有任何用于 IntelliJ 的模拟感知调试器让我看到该方法最终将返回哪个值。
是的,在我收到回复说“如果您为所有内容编写单元测试就不需要调试器”之前,我只想声明我知道这一点。这是遗留代码,或者至少是没有考虑测试的代码。