如果你不能完成现有的代码,你可以改变UnmodifiableMap System.getenv()进行测试。
def setEnv(key: String, value: String) = {
val field = System.getenv().getClass.getDeclaredField("m")
field.setAccessible(true)
val map = field.get(System.getenv()).asInstanceOf[java.util.Map[java.lang.String, java.lang.String]]
map.put(key, value)
}
setEnv("ENVIRONMENT_VARIABLE", "TEST_VALUE1")
如果您需要测试控制台输出,您可以使用单独的PrintStream。 你也可以实现你自己的PrintStream。
val baos = new java.io.ByteArrayOutputStream
val ps = new java.io.PrintStream(baos)
Console.withOut(ps)(
// your test code
println(sys.env("ENVIRONMENT_VARIABLE"))
)
// Get output and verify
val output: String = baos.toString(StandardCharsets.UTF_8.toString)
println("Test Output: [%s]".format(output))
assert(output.contains("TEST_VALUE1"))
我包裹在单独的服务检索ENV变量和测试 – xersiee
时,如果你不能完成现有的代码嘲笑它,你可以改变UnmodifiableMap System.getenv()进行测试。 –