2016-09-28 45 views
0
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?

回答

0

Mockito完全通過使用「代理對象」自動創建子類方法;它根本不覆蓋,更改或模擬字段。你需要一個不同的工具。