Hibernate初学者---Junit 测试String类型返回值

public class Item{

public String TypeName(){
    returen "A";
}
...


}

假设我们要测试返回值是否为“A”。

  • 首先NEW一个Item对象出来:Item item= new Item();
  • NEW一个通用类型变量,临时装载item对象. Class clazz= item.getClass(); 其实就是复制item副本的过程,
  • NEW一个反射对象Field,参数指向clazz声明的方法名“TypeName”,表示这个Field只存储TypeName方法相关的参数!:Field field = clazz.getDeclaredField("TypeName");

  • 反射机制访问权限相关设定,必须这么写 field.setAccessible(true);

  • 由于我的Field限制为TypeName属性范围,所以,Field.get(object)方法中,传入的 object 如果具有TypeName方法,它的值将被保存。我们传入item, 得到的将是item的TypeName方法,这个方法是有返回值的,所以我们用String参数接收这个返回值 。String string = (String)field.get(item);

  • 既然 我们已经拿到了TypeName的返回值 ,与我们希望得到的结果做个比较,就能知道它们是否equlse了。

assertEquals("A",string);
  • 就这样就可以通过一个对象的影子映射到了这个对象的所有信息了。这就是反射机制。

你可能感兴趣的:(hibernate)