这不是那么容易。
您需要使用powermock之类的东西。
使用powermock可以在调用方法并进行播放之前创建一个场景,这意味着您可以告诉
ArrayList类构造函数预期被调用并返回a
mock而不是real
ArrayList。
这将允许您在上断言
mock。
这样的事情应该起作用:
ArrayList listMock = createMock(ArrayList.class);expectNew(ArrayList.class).andReturn(listMock);
因此,当您的方法创建本地
Listpowermock时,实际上将返回您的模拟
List。
更多信息在这里。
这种模拟实际上是针对未编写为可测试的遗留代码的单元测试。如果可能的话,我强烈建议重写代码,这样就不必进行这种复杂的模拟了。



