Viv*_*osh 5 java junit unit-testing mockito powermock
我有类似的代码
class superClass {
public String transform(String str) {
//lots of logic including ajax calls
return("Modified"+str);
}
}
class baseClass extends superClass {
private FetchData fetchData;
baseClass(FetchData fetchData) {
this.fetchData = fetchData;
}
public String parse() {
String str = fetchData.get();
//some more logic to modify str
return transform(str);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用mockito和junit来测试它.我在嘲笑baseClass和做这样的事情
baseClass baseMock = Mockito.mock(baseClass.class);
Mockito.when(baseMock.parse()).thenCallRealMethod();
Mockito.when(baseMock.transform()).thenReturn("Something");
Run Code Online (Sandbox Code Playgroud)
我如何注入模拟fetchData,因为它是通过构造函数注入的?
您可以使用Mockito.spy(http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html#spy):
baseClass object = new baseClass(new FetchData());
baseClass spy = Mockito.spy(object);
Mockito.when(spy.parse()).thenCallRealMethod();
Mockito.when(spy.transform()).thenReturn("Something");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7144 次 |
| 最近记录: |