如何按领域反思性地比较POJO
2022-09-04 02:59:34
我基本上正在寻找一个单元测试框架,我可以用来比较不覆盖等于和有代码方法的POJO。我看了一下JUnit,Test NG和Mockito,但它们似乎并没有解决目的。
例如,考虑下面的代码:
public class CarBean {
private String brand;
private String color;
public CarBean (){
}
public CarBean (String brand, String color){
this.brand= brand;
this.color= color;
}
/**
* @return the brand
*/
public String getBrand() {
return brand;
}
/**
* @param the brand to set
*/
public void setBrand(String brand) {
this.brand= brand;
}
/**
* @return the color
*/
public String getColor() {
return color;
}
/**
* @param the color to set
*/
public void setColor(String color) {
this.color= color;
}
}
POJO CarBean代表了一辆现实世界的汽车。它有两个参数,品牌和颜色。现在,假设您有两个汽车对象,如下所示:
CarBean car1 = new CarBean("Ford","Black");
CarBean car2 = new CarBean("Ford","Black");
这两个对象具有相同的参数值。但是当你使用等值来比较这个时,它返回 false :
car1.equals(car2); // This returns false
现在我需要对返回 CarBean 对象的方法进行单元测试。在这种情况下,我要么需要逐个比较carbean属性,要么需要实现equals()和hashcode()方法。
所以我的问题是 - 是否已经有一个单元测试框架可以处理这个问题?