如何测试后构造方法

How do I test a postconstruct method

我有一个如下所示的@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 时的条件。

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

我用 mockito 试过了。但我想,我不能真正模拟它,因为它是 @PostConstruct 当我初始化我的模拟时,它已经调用了 init 方法。 我应该在这里测试哪些场景以及如何测试?

谢谢。

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