Typesafe Config:用于单元测试的替代值

在需要config: Config的类的单元测试中,我想直观地(而不是在其他位置的配置文件中)声明该测试的假定配置设置。

例如,我想做这样的事情:

class myClassspec extends AnyflatSpec{
  val myTestingConfigForThisTestCase = 3L
  val config = ConfigFactory.load()
                .withValue("my-config-path",myTestingConfigForThisTestCase)
  ...
}

但是,withValue期望ConfigValue,并且基本类型与该类型之间似乎没有隐式转换。

关于简单解决方案的任何想法吗?

iCMS 回答:Typesafe Config:用于单元测试的替代值

您可能想使用ConfigValueFactory-很可能是类似

ConfigFactory.load()
  .withValue(
    "my-config-path",ConfigValueFactory.fromAnyRef(myTestingConfigForThisTestCase)
  )

这并不能很好地扩展-即,如果您需要覆盖2-3个以上的设置,则会比ConfigFactory.parseString + withFallback获得更多样板:

val configOverride = """
{
   my-config-path: $myTestingConfigForThisTestCase
   other-config {
      ...
   }
}
"""
val config = ConfigFactory.parseString(configOverride)
   .withFallback(ConfigFactory.load())
本文链接:https://www.f2er.com/2174417.html

大家都在问