模拟System.getenv而不是powermock

问题描述 投票:0回答:2

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

java junit powermockito
2个回答
1
投票

看看JUnit 4的System Rules,特别是EnvironmentVariables

public class EnvironmentVariablesTest {

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

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

0
投票

添加到@Roland Weisleder。

EnvironmnetVariables不是junit的一部分。你需要添加以下依赖项

https://stefanbirkner.github.io/system-rules/download.html

<dependency>
  <groupId>com.github.stefanbirkner</groupId>
  <artifactId>system-rules</artifactId>
  <version>1.19.0</version>
  <scope>test</scope>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.