如何模拟系统环境

时间:2020-09-11 10:05:07

标签: java mockito junit5

我正在使用 Java 8 Junit5 Mockito 。有没有办法模拟 System.env()

我有以下代码来自外部依赖项,无法修改。

这里看到了几个示例,但它们引用了 Junit4

或者要求使用我不想使用的 PowerMock

有没有办法模拟这个问题或解决这个问题?请指教。谢谢。

使用遗留类和方法的我类中的方法

public class MyClass {

    void myMethod() {

        // I need to use this legacyMethod
        Map<String, String> map = ExternalClass.externalMethod();

        // some logic
    }
}

我无法更改的外部课程。

public class ExternalClass {

    public static Map<String, String> externalMethod() {

        // other logic

        // I want to mock this so that the variable name can get a value out of this.
        String name = System.getenv("SOME_ENV_VALUE");

        if(name == null) {
            // test fails cos I end up inside here currently.
            throw new RuntimeException();
        }

        // other logic

        return new HashMap<>();
    }
}

0 个答案:

没有答案