小编Nea*_*eal的帖子

JUnit 测试中的 System.setProperty

我有两个测试,我们称它们为测试 A 和测试 B。

在测试 A 中,我们有这条线

System.setProperty("<interface>", "<implementation>);
Run Code Online (Sandbox Code Playgroud)

在测试 B 中,我们有相同的线路。

当两条线都存在时,测试 B 失败。当我注释掉测试 A 中的行时,测试 B 成功。如果我做一个

System.clearProperty("<interface>") 
Run Code Online (Sandbox Code Playgroud)

测试 B 失败。

我对具有不同接口属性的测试 C 和 D 有类似的问题。测试 C 设置它,测试 D 没有。当我注释掉 set 调用时,D 通过了。当我没有。D 失败。当我调用 clear 时,D 失败了。

调用 clear 和注释掉该行都会导致 B 和 D 在该系统属性中具有“正确”的值,但是当我调用 clear 时它们会失败(尽管与注释掉的行具有相同的值)并在注释掉时成功. 任何人都知道为什么会这样?

片段显示它的作用

System.setProperty("INTERFACE_NAME", "IMPLEMENTATION_NAME");

//getOBJECT will now return a type of IMPLEMENTATION_NAME
INTERFACE mockedINTERFACE = INTERFACE.getDirectory().getOBJECT(domain);
Run Code Online (Sandbox Code Playgroud)

java testing junit

3
推荐指数
1
解决办法
7805
查看次数

标签 统计

java ×1

junit ×1

testing ×1