首页 > 解决方案 > @Bean 的 Junit

问题描述

我有一个配置类如下:

@Configuration()
public class JsonConfiguration {

    /** Default constructor. */
    protected JsonConfiguration() {
    }

     /**
     * Overrides the default jackson mapper builder to remove empty/null values from returned json.
     * @return the customised jackson mapper.
     */
    @Bean
    public Jackson2ObjectMapperBuilder jacksonBuilder() {
        Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder()
            .serializationInclusion(Include.NON_EMPTY);
        return b;
    }
}

我需要对我的方法“jacksonBuilder”进行单元测试。

有人可以帮助我如何进行。

标签: junitconfigurationannotations

解决方案


好吧,我做了一些研究,并找到了相同的答案。

以下是我为测试编写的代码,以防万一有人卡在同一点上,请参考以下内容:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class)
public class JsonConfigurationTest {

    @Configuration
    static class ContextConfiguration {

        @Bean
        public JsonConfiguration orderService() throws NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
            Constructor<JsonConfiguration> constructor = JsonConfiguration.class
                    .getDeclaredConstructor(new Class[0]);
            constructor.setAccessible(true);
            JsonConfiguration conf= constructor.newInstance(new Object[0]);
            return conf;
        }
    }

    @Autowired
    private JsonConfiguration configuration;

    @Test
    public void jacksonBuilderTest() {
        Jackson2ObjectMapperBuilder builder = configuration.jacksonBuilder();
        assertNotNull(builder);
    }

}

推荐阅读