我有两个测试,我们称它们为测试 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)