我有getNameLength方法,我需要使用PowerMockito模拟setName方法。我应该如何模拟setName方法中的输入参数(sb, input),以便我可以使用模拟数据运行我的getNameLength测试用例?
public class ExampleClass{
public static int getNameLength(StringBuilder sb ){
setName(sb, "Test");
return sb.toString().length();
}
public static void setName(StringBuilder sb, String input){
sb.append(input);
}
}
为什么需要这个set方法呢?
public static int getNameLength(StringBuilder sb ){
sb.append(sb, "Test");
return sb.toString().length();
}
所做的事情与您的代码所做的事情完全相同。
关于你的实际问题:你不需要这样的代码的mock。你控制所有的"输入"(进入方法的StringBuilder);你会得到一个值
你可以写一个简单的断言,比如
assertThat(getNameLength(new StringBuilder()), is(4));
例如(它检查将"Test"添加到空构建器中是否会产生4个字符的字符串)。
最后:你的问题似乎也是:你不了解java的一些基本的东西,特别是static它接缝。您的示例代码从一开始就没有意义。因此:暂时忘记嘲笑;最好首先把重点放在更好地理解代码应该做什么上!