需要有关抑制子方法和构造函数的单元测试建议

时间:2014-06-25 14:41:07

标签: java mockito

我有一些像这样奇怪的代码

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()

的结果

1 个答案:

答案 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)