如何对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等。