如何对java代码进行单元测试,它使用反射来填充类的子类?
这是我的代码:如何对java代码进行单元测试,它使用反射来填充类的子类?,java,spring-mvc,junit,reflection,spring-mvc-test,Java,Spring Mvc,Junit,Reflection,Spring Mvc Test,这是我的代码: protected void loadConverters() { // load all available converters Reflections reflections = new Reflections("com.mypackage.MyClass"); Set<Class<? extends ContentConverter>> processors = reflections.getSub
protected void loadConverters() {
// load all available converters
Reflections reflections = new Reflections("com.mypackage.MyClass");
Set<Class<? extends ContentConverter>> processors = reflections.getSubTypesOf(ContentConverter.class);
for(Class<? extends ContentConverter> processorClass : processors) {
try {
if(Modifier.isAbstract(processorClass.getModifiers())) {
continue;
}
ContentConverter processor = processorClass.getDeclaredConstructor().newInstance();
ReportOutputType type = processor.getOutputType();
if(type == null) {
LOGGER.warn("Class {} does not return a valid ReportOutputType, is not being loaded for processing.", processorClass);
continue;
}
// register
AVAILABLE_CONVERTERS.put(type, processor);
} catch (Exception e) {
LOGGER.error("Cannot instantiate step processor class", e);
}
}
}
受保护的void loadConverters(){
//加载所有可用的转换器
反射反射=新反射(“com.mypackage.MyClass”);
SET这实际上是一个静态方法吗?不,这不是静态的。那么为什么它除了操纵一个常量映射之外什么都不做呢?这里的想法是填充不同类型的转换器,比如ex-csv、json、as-is、delimiter等。所有这些转换器都有自己特定的转换器类。因此,我们使用反射来填充转换器,基于在他们的可用性上。所以地图本身并不是恒定的。今天我只有一个csv转换器。但接下来,我们还将有json、delim等。