我在试着模仿System.getenv()
。这就是我如何使用https://github.com/stefanbirkner/system-rules库:
@ExtendWith(MockitoExtension.class)
public class SampleTest {
@Rule
public final EnvironmentVariables environmentVariables = new EnvironmentVariables();
@BeforeEach
public void setup() {
environmentVariables.set("AWS_REGION", TEST_REGION.toString());
environmentVariables.set("CLIENT_ACCOUNT_ROLE", ROLE_ARN);
}
...
}
但构建失败,出现异常:java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Map java.util.Collections$UnmodifiableMap.m accessible: module java.base does not "opens java.util" to unnamed module
。异常发生在environmentVariables.set("AWS_REGION", TEST_REGION.toString());
行。
我在另一个注解https://github.com/junit-pioneer/junit-pioneer/issues/509中发现了类似的问题,但没有适当的解决方案。有没有一种方法可以模拟这个java和junit版本的变量?
1条答案
按热度按时间gfttwv5a1#
对于JUnit 5,必须使用system-lamba