Если у вас есть контроль над Config
объектом (потому что, возможно, он передается в качестве параметра), вы можете просто переопределить некоторое значение в конфигурации:
val config = ConfigFactory.load.withValue(
"prop.type",
ConfigValueFactory.fromAnyRef(5)
).resolve()
Вызов resolve
необходим, если любой другой свойства зависят от prop.type
, например:
prop.type2 = ${prop.type} + 1
Вы также можете использовать системные свойства, поскольку они сопоставляются непосредственно со значениями из конфигурации.
Это означает, что вы можете сделать что-то подобное в начале теста:
System.setProperty("prop.type", 5.toString)
ConfigFactory.invalidateCaches()
Конечно, поскольку изменение системных свойств программно не является потокобезопасным, поэтому оно не подходит для производства код, но только для тестов.