我正在做一些测试,在很多情况下我都有 FTP/HTTP 的配置。
我正在我的 sbt 中使用 Scala 和以下库:
"org.scalatest" %% "scalatest" % "3.0.1" % Test,
"org.scalamock" %% "scalamock" % "4.1.0" % Test,
我正在将以下代码作为我的测试中模拟配置的示例:
val someConfig = SomeConfig(
endpoint = "",
user = "",
password = "",
companyName="",
proxy = ProxyConfig("", 2323)
)
但我觉得对我要处理的每个配置都这样做不太好......
我想创建以下内容:
val someConfig = mock[SomeConfig]
但是当我的代码尝试访问代理属性(这是一个案例类)时,它会失败并出现空指针异常。
我想知道如何模拟包含其他案例类的案例类并使我的代码更加清晰,有没有办法使用 MockFactory 来做到这一点?
最佳答案
你可以尝试像这样模拟它:
val someConfig = mock[SomeConfig]
when(someConfig.proxy).thenReturn(ProxyConfig("", 2323))
因此,当您尝试获取 someConfig.proxy
时,它将返回 ProxyConfig("", 2323)
。
由于known limitation of ScalaMock,上面的代码正在使用Mockito
关于scala - 使用 MockFactory 模拟配置对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50394888/