[英]How to unit-test function that uses global variable?
假设你有一堂课
class NeedToTestThisClass{
private String string1;
....
....
private void needToTestThisMethod(){
if(string1.equals("a")){
...
}
else{
....
}
}
}
如何使用不同的字符串值测试此方法? 该字符串没有设置器,也不包含在构造函数中。 我无法更改代码。 我有电源模拟。 这个问题很简单,但找不到解决方法。 谢谢。
您可以使用PowerMock绕过封装
@Test
public void test() {
NeedToTestThisClass tested = new NeedToTestThisClass();
WhiteBox.setInternalState(tested,"string1", "someValue");
Whitebox.invokeMethod(tested, "needToTestThisMethod");
//here verify something
}
通常,通过测试实际使用这些私有方法的公共方法来测试这些类型的方案。 通常,请尝试测试使string1变量发生突变的流程,然后依次测试您的私有方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.