getClass of mockito mock



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

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

在测试过程中发生的情况是mock(MyInstance.class)进入该方法。我得到的不是"myInstance",而是"testClassName$$MyInstance$$EnhancerByMockito$$...."

是否有可能检测到该实例是模拟实例并获得"真实"类型?

感谢@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;
 }

相关内容

  • 没有找到相关文章

最新更新