我想为项目中的一些静态方法编写单元测试用例,
我的班级代码片段
Class Util{
public static String getVariableValue(String name)
{
if(isWindows()){
return some string...
}
else{
return some other string...
}
}
public static boolean isWindows(){
if(os is windows)
return true;
else
return false;
}
}
基本上,当isWindows()返回'false'时,我想为getVariableValue()编写单元测试用例。我如何使用powermock写这个?
答案 0 :(得分:4)
此解决方案还使用Easymock来设定期望值。 首先,您需要为testclass做准备:
@RunWith(PowerMockRunner.class)
@PrepareForTest(Util.class)
public class UtilTest {}
模拟静态类:
PowerMock.mockStaticPartial(Util.class,"isWindows");
设定期望:
EasyMock.expect(Util.isWindows()).andReturn(false);
重播模拟:
PowerMock.replay(Util.class);
调用您要测试的方法,然后使用以下方法验证模拟:
PowerMock.verify(Util.class);
答案 1 :(得分:1)
// This is the way to tell PowerMock to mock all static methods of a
// given class
PowerMock.mockStaticPartial(Util.class,"isWindows");
expect(Util.isWindows()).andReturn(false);