【发布时间】:2016-11-02 05:02:44
【问题描述】:
我有如下最后一堂课
public class firstclass{
private String firstmethod(){
return new secondclass("params").somemethod();
}
}
public final class secondclass{
secondclass(String params){
//some code
}
public String somemethod(){
// some code
return somevariable";
}
}
我必须在这里测试头等舱,所以我将其模拟如下
secondclass classMock = PowerMockito.mock(secondclass .class);
PowerMockito.whenNew(secondclass .class).withAnyArguments().thenReturn(classMock);
Mockito.doReturn("test").when(classMock).somemethod();
但这并没有像我预期的那样嘲笑任何人可以帮助我吗?
【问题讨论】:
-
你为什么要模拟最后一堂课?如果它是最终的,则不应该以这种方式使用。
-
我必须测试 firstclass firstmethod。因为有一个返回 somevariable 的第二类 somemethod 的调用,所以我嘲笑它返回测试值
-
那么你应该设计第一个类来接受一个接口。如果您的第一堂课正在调用最后一堂课,就是这样,您无法更改它。
-
不,我不能更改代码。所以没有办法嘲笑吗?
-
不,除非您更改代码,否则您无法更改它。在这种情况下,最小的可能被测单元是
firstclass和secondclass作为一个联合体。
标签: java junit mockito powermockito