首页 > 解决方案 > 使用 powermock 模拟 System.getenv

问题描述

考虑问题https://stackoverflow.com/a/51980599/7203487。类中的方法中只有一个方法包含需要模拟的 System.getenv。问题是我需要采用 jacoco 代码覆盖率,由于使用 powemock,我得到的覆盖率为 0%。有没有办法在有或没有 powermock 的情况下模拟系统并获得代码覆盖率?

标签: javajunitpowermockito

解决方案


查看 JUnit 4 的系统规则,尤其是EnvironmentVariables

public class EnvironmentVariablesTest {

  @Rule
  public final EnvironmentVariables environmentVariables = new EnvironmentVariables();

  @Test
  public void setEnvironmentVariable() {
    environmentVariables.set("name", "value");
    assertEquals("value", System.getenv("name"));
  }
}

推荐阅读