我有一节课.
Class First {
private Second second;
public First(int num, String str) {
second = new Second(str);
this.num = num;
}
... // some other methods
}
Run Code Online (Sandbox Code Playgroud)
我想为First类的公共方法编写单元测试.我想避免执行类Second的构造函数.
我这样做了:
Second second = Mockito.mock(Second.class);
Mockito.when(new Second(any(String.class))).thenReturn(null);
First first = new First(null, null);
Run Code Online (Sandbox Code Playgroud)
它仍在调用类Second的构造函数.我怎么能避免呢?
我想模拟构造函数并在调用构造函数时返回模拟对象。这可以使用 powermockito 的 whenNew 方法来实现,如下所示。
PowerMockito.whenNew(ClassName.class).withAnyArguments().thenReturn(mockObject);
由于 Junit5 尚不支持 powermockito,我需要知道是否可以使用 Mockito 来实现这一点。