gpt4 book ai didi

java - 启用对方法的单元测试,使其受到保护

转载 作者:行者123 更新时间:2023-12-01 17:55:46 25 4
gpt4 key购买 nike

让我解释一下问题场景。我的任务是修改复杂的函数 testFunc() ,如下所示。

public String testFunc() {
String a = func1();
String b = func2(a);
String c = func3(b);
return c;
}
private String func1(){
return "hello";
}
private String func2(String p1){
return "a" + p1;
}
private String func3(String p1){
return "b" + p1;
}

我修改了 testFunc 方法并包含我的逻辑。但作为一名优秀的开发人员,我希望为我编写的额外逻辑编写单元测试。但我没有时间也没有耐心去测试整个方法。我只想测试我添加的逻辑。

 public String testFunc() {
String a = func1();
String b = func2(a);
String c = func3(b);
String d = func4(c)
return d;
}
protected final String func4(String p1) {
return "1" + p1;
}

将方法 func4 设置为 protected final 对我来说是否有意义,以便我可以彻底地对逻辑进行单元测试。或者这是不好的编码习惯?

最佳答案

我会将其设为私有(private)包,这比 protected 更具限制性。如果您已经在项目中使用 Guava,您甚至可以使用 @VisibleForTesting 注释该方法。明确您的意图:

@VisibleForTesting final String func4(String p1) {
//...
}

最后,包私有(private)方法不会暴露给外界,也不是 API 的一部分,因此不会破坏封装。

关于java - 启用对方法的单元测试,使其受到保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45030845/

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