我有一个私人领域的课程
public class HibernateSessionFactoryManager{
private SessionFactory sessionFactory;
}
现在我想使用私有字段对某些方法进行单元测试。所以我试图使用java 反射来访问私有字段。
try {
Field field = HibernateSessionFactoryManager.class.getDeclaredField("sessionFactory");
field.setAccessible(true);
//field.set
SessionFactory sessionFactory = (SessionFactory) field.get(manager);
} catch (NoSuchFieldException e) {
System.out.println("no such");
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
我正在
java.lang.NoSuchFieldException: sessionFactory at java.lang.Class.getField(Class.java:1584)
我无法弄清楚我在做什么错误。任何帮助将不胜感激。
答案 0 :(得分:0)
为了与Mockito遇到类似问题的人的利益:使用x.iter().filter(|x| x == &&x.chars().rev().collect::<String>());
x.iter().filter(|x| *x == &x.chars().rev().collect::<String>());
x.iter().filter(|x| **x == x.chars().rev().collect::<String>());
设置私有字段时,必须使用class.getDeclaredField()
直接实例化要设置私有字段的对象,不是通过致电Mockito的new
。