通过反射获取模拟对象的字段值


class Person { 
    private String firstName;
    private String lastName;
    // getters and setters for firstName, lastName
}
@Test
void test() {
    Person p = mock(Person.class);
    when(p.getFirstName()).thenReturn("John");
    when(p.getLastName()).thenReturn("Peter");
    Map<String, Object> someContainerLikeMap = new HashMap<>();
    org.springframework.util.ReflectionUtils.doWithFields(p.getClass(), field -> {
        someContainerLikeMap.put(field.getName(), field.get(p));
        // field.get(p) above, always get null
    }
}

我有两个问题:

  1. 通过场反射得到,field.get(p)总是得到null;

  2. 字段的迭代,什么是最好的方法,只是有字段定义在类Person包括,即firstName, lastName?

Mockito完全通过使用"代理对象"自动子类化方法来工作;它根本不重写、更改或模拟字段。

相关内容

  • 没有找到相关文章

最新更新