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
}
}
我有两个问题:
通过字段反射获得field.get(p)
,始终获得null
;
迭代字段,在包含的Person类中定义字段的最佳方法是什么,即firstName,lastName?
答案 0 :(得分:0)
Mockito完全通过使用“代理对象”自动子类化方法来工作;它根本不会覆盖,更改或模拟字段。你需要一个不同的工具。