我正在测试一个应该返回类型为Card
的对象的方法。比如:
@Test
public void testPrepareCardData() {
Card card = service.prepareData(ID);
之后,我想断言card
的所有属性都没有设置。假设该方法返回空对象。一种方法(相当幼稚)是检查每个属性,如:
assertNull(card.getId());
assertNull(card.getCardNumber());
etc.
但是有很多属性这需要一些时间。有什么复杂的解决办法吗?
您可以使用Reflection
来执行
Method[] methods = card.getClass().getDeclaredMethods();
for (Method method : methods) {
if (method.getName().contains("get")) {
method.setAccessible(true);
// Act & Assert
assertNull(method.invoke(card));
}
}
更多信息:Reflection Oracle doc