我需要获取实例的bean名称。所以我建立(简化):
public String getName(Object instance) {
return uncapitalize(instance.getClass().getSimpleName();
}
测试期间发生的事情是mock(MyInstance.class)
进入此方法。我将获得"myInstance"
"testClassName$$MyInstance$$EnhancerByMockito$$...."
以某种方式可以检测到实例是一个模拟实例并获得真实的"类型?
答案 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;
}