我有一些像这样奇怪的代码
B param = ...;
D main(){
return A.method(param, C.class, new String[]{"abc"}, new SomeClass()).get();
}
,其中
public static A method(...)
public D get()
如何模拟方法main()来抑制子方法调用并抑制对象的构造?
我需要模拟get()
答案 0 :(得分:0)
除了将一个更好的设计方法注入方法而不是创建它们之外,你可以使用Powermock来模拟构造函数调用,这样对new的调用实际上会创建模拟对象。
这是powermock关于使用mockitto
的模拟构造函数的教程http://code.google.com/p/powermock/wiki/MockitoUsage13
在你的考试中,你可以说:
SomeClass myMock = mock(SomeClass.class);
whenNew(SomeClass.class).withNoArguments().thenReturn(myMock)