gpt4 book ai didi

java - 我应该在什么条件下测试 get() 和 set() 方法?

转载 作者:搜寻专家 更新时间:2023-11-01 01:05:43 26 4
gpt4 key购买 nike

我无法确认是否要做这些测试。看起来set和get方法很简单,比如:

setA(String A) {
this.A = A;
}

getA(){
return A;
}

如有任何想法,我们将不胜感激!

谢谢,约瑟夫

最佳答案

我只在野外看到过很少的 getter 和 setter 问题,只有其中一个可以通过单元测试检测到,而且只有当所有的 getter 和 setter 都一起测试时,而不是通过单独的测试方法。

考虑重复使用来自两对不同的 getters/setters 的相同字段的复制/粘贴错误。即,

public void setA(Object a) {
this.a = a;
}
public Object getA() {
return a;
}

public void setB(Object a) {
this.a = a;
}
public Object getB() {
return a;
}

一次关注一对 setter/getter 的单元测试不会暴露问题。

现代 IDE 会根据请求生成 getter 和 setter,因此不太可能出现这种错误,但并不是每个人都使用现代 IDE。 (上面的 bug 是 vi 用户造成的。)如果这些方法驻留在一个简单的数据持有者对象中,那么问题可能离问题的根源有点远。

出于这个原因,如果我完全测试 getter 和 setter(而且我经常不这样做),它来自一个测试方法,该方法首先使用不同的值调用所有 setter,然后对所有 getter 进行断言。

但是,您必须忍受的一个问题是,当其他人拿到代码并决定时,无法保证以“简单”getter 或 setter 开始生命的方法会保持这种状态,比如说,getter 是做一些有副作用的事情的好地方。

关于java - 我应该在什么条件下测试 get() 和 set() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2918929/

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