JUnit4:Assert对象尚未设置属性

8oomwypt  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(160)

我正在测试一个方法,它应该返回一个Card类型的对象。类似于:

@Test
public void testPrepareCardData() {   
   Card card = service.prepareData(ID);

然后,我想Assertcard的所有属性都没有被设置。假设该方法返回空对象。一种方法(相当幼稚)是检查每个属性,如下所示:

assertNull(card.getId());
assertNull(card.getCardNumber());
etc.

但是有很多属性,这需要一些时间。有什么复杂的解决方案吗?

1zmg4dgp

1zmg4dgp1#

您可以使用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

相关问题