比较对象的属性值而不是对象类型
Compare objects's properties values but not objects type
是否可以将两种不同类型的对象与 mockito 或 hamcrest 进行比较?例如下面我展示了我的对象的例子。
对象A:
public class ObjectA {
private Long id;
private String name;
private AddressA address
// getters and setters
}
对象B:
public class ObjectB {
private Long id;
private String name;
private AddressB address
// getters and setters
}
对象 AddressA 和 AddressB 也具有相同的命名属性,只是类型不同。有可能吗,如果有的话怎么办?谢谢
使用hamcrest
API,可以通过以下
实现
ObjectA A = new ObjectA(1, "ABC", new AddressA("jkl"));
ObjectB B = new ObjectB(1, "PQR", new AddressB("xyz"));
assertThat(A, hasProperty("id", equalTo(B.getId())));
assertThat(A, hasProperty("name", equalTo(B.getName())));
assertThat(A.getAddressA(), hasProperty("address", equalTo(B.getAddressB().getAddress())));
是否可以将两种不同类型的对象与 mockito 或 hamcrest 进行比较?例如下面我展示了我的对象的例子。
对象A:
public class ObjectA {
private Long id;
private String name;
private AddressA address
// getters and setters
}
对象B:
public class ObjectB {
private Long id;
private String name;
private AddressB address
// getters and setters
}
对象 AddressA 和 AddressB 也具有相同的命名属性,只是类型不同。有可能吗,如果有的话怎么办?谢谢
使用hamcrest
API,可以通过以下
ObjectA A = new ObjectA(1, "ABC", new AddressA("jkl"));
ObjectB B = new ObjectB(1, "PQR", new AddressB("xyz"));
assertThat(A, hasProperty("id", equalTo(B.getId())));
assertThat(A, hasProperty("name", equalTo(B.getName())));
assertThat(A.getAddressA(), hasProperty("address", equalTo(B.getAddressB().getAddress())));