我有getNameLength方法,我需要使用PowerMockito来模拟setName方法。我应该如何在setName emthod中模拟输入参数(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);
}
}
答案 0 :(得分:0)
为什么你需要那套方法?
public static int getNameLength(StringBuilder sb ){
sb.append(sb, "Test");
return sb.toString().length();
}
与您的代码完全相同。
根据您的实际问题:您不需要模拟此类代码。您可以控制所有“输入”(进入方法的StringBuilder);你会得到一个价值。
所以你可以写下像
这样的简单断言assertThat(getNameLength(new StringBuilder()), is(4));
例如(它检查将“Test”添加到空构建器会产生一个4字符串字符串。)
最后:你的问题似乎也是:你不了解java的一些基本知识,特别是静态它的接缝。您的示例代码首先没有意义。因此:忘记嘲笑当下;更好地专注于更好地理解代码应该做的事情!