【问题标题】:Mock class with Configuration as arguments以 Configuration 作为参数的模拟类
【发布时间】:2021-07-16 00:51:03
【问题描述】:

如何模拟将 Configuration(play.api) 作为参数注入其构造函数的类?

class SomeScalaClass @Inject(config: Configuration){
    val someValue = config.get[String]("someValueInConfig")
    def abc:Int = {
     ..
     ..
    }
}

我正在使用 scalamock。我正在尝试测试一个将“SomeScalaClass”作为依赖注入的类:

class ClassToTest @Inject()(obj: SomeScalaClass){.....}

当我在测试夹具中执行此操作时出现错误:

val someScalaClassMock = mock[SomeScalaClass]
val classToTestObj = new ClassToTest(someScalaClassMock)

错误是:未找到:值 someScalaClassMock

我是 scala 的新手,所以不知道如何解决这个问题。提前致谢

【问题讨论】:

  • 请提供完整的测试代码,错误与您分享的不符。

标签: scala typesafe-config scalamock


【解决方案1】:

您可以尝试将 someValue val 设为 lazy val 或在单个方法中需要时提取方法定义中的配置值。

或者你可以使用不需要任何注入的typesafe config

import com.typesafe.config.ConfigFactory


val someValue= ConfigFactory.load().getString("someValueInConfig")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    相关资源
    最近更新 更多