如何测试postconstruct方法

时间:2015-05-11 08:54:09

标签: spring unit-testing junit testng

我有一个@PostConstruct方法,如下所示:

@PostConstruct
    public void init() throws IOException {
        if (getPrimaryDirectory() == null) {
            primaryDirectory = new File(localDirectory, DEFAULT_PRIMARY_DIRECTORY);
        }
        FileUtils.forceMkdir(primaryDirectory);

        if (secondaryDirectory() == null) {
            secondaryDirectory = new File(localDirectory, DEFAULT_SECONDARY_DIRECTORY);
        }
        FileUtils.forceMkdir(secondaryDirectory);
    }

我的声纳分析抱怨测试不包含某些条件。例如,测试primaryDirectory为null时的条件。

使用@value和表达式语言从属性文件中注入primaryDirectory的值。

我用mockito尝试过。但我想,我不能真的嘲笑这个因为它是@PostConstruct而且当我启动我的模拟时,它已经调用了init方法。 我应该在这里测试哪些场景以及如何测试?

感谢。

1 个答案:

答案 0 :(得分:0)

只需将其作为纯单元测试进行测试。不要将任何注释处理器连接到此测试,只需手动设置所有值并显式调用方法。这种方式应该是对这个功能的正确测试。