getClass的mockito模拟

时间:2015-11-10 11:06:47

标签: java mockito

我需要获取实例的bean名称。所以我建立(简化):

  public String getName(Object instance) {
      return uncapitalize(instance.getClass().getSimpleName();
  }

测试期间发生的事情是mock(MyInstance.class)进入此方法。我将获得"myInstance"

,而不是"testClassName$$MyInstance$$EnhancerByMockito$$...."

以某种方式可以检测到实例是一个模拟实例并获得真实的"类型?

1 个答案:

答案 0 :(得分:3)

感谢@Andy Turner,我现在用这个:

 static final String ENHANCER = "$$EnhancerByMockitoWithCGLIB$$";

 static Class<? extends Object> typeOf(Object instance) {
   Class<? extends Object> type = instance.getClass();
   while(type.getSimpleName().contains(ENHANCER)) {
     type = type.getSuperclass();
   }

   return type;
 }