gpt4 book ai didi

java - 模拟静态方法,该方法调用传递给其中的参数的 void 方法

转载 作者:太空宇宙 更新时间:2023-11-04 12:13:20 24 4
gpt4 key购买 nike

我有 getNameLength 方法,我需要使用 PowerMockito 模拟 setName 方法。我应该如何在 setName 方法中模拟输入参数(sb,输入),以便我可以使用模拟数据运行我的 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();

}

所做的事情与您的代码所做的完全相同。

关于您的实际问题:您不需要模拟此类代码。您控制所有“输入”(进入该方法的 StringBuilder);然后你就得到了返回。

所以你可以写下一个简单的断言,例如

assertThat(getNameLength(new StringBuilder()), is(4));

例如(检查将“Test”添加到空构建器会产生 4 个字符的字符串)。

最后:你的问题似乎也是:你不了解有关java的一些基本知识,尤其是静态它的接缝。您的示例代码一开始就没有意义。因此:暂时忘记 mock ;更好地专注于更好地理解您的代码首先应该做什么!

关于java - 模拟静态方法,该方法调用传递给其中的参数的 void 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39666796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com