Scala 如何模拟内部单例对象的字段?

Scala 如何模拟内部单例对象的字段?,scala,mockito,inner-classes,scalatest,mockito-scala,Scala,Mockito,Inner Classes,Scalatest,Mockito Scala,给定以下代码段 class Config { private val conf = ConfigFactory.load() object Http { val host = conf.getString("http.host") val port = conf.getInt("http.port") } } 如何模拟内部单例对象Http的host和port字段 通过IdiomaticMockito import org.mockito.stubbing.Retu

给定以下代码段

class Config {
  private val conf = ConfigFactory.load()

  object Http {
    val host = conf.getString("http.host")
    val port = conf.getInt("http.port")
  }
}
如何模拟内部单例对象
Http
host
port
字段

通过
IdiomaticMockito

import org.mockito.stubbing.ReturnsDeepStubs
import org.mockito.{ArgumentMatchersSugar, IdiomaticMockito}

val config = mock[Config](ReturnsDeepStubs)
config.Http.host returns "www.example.com"
config.Http.port returns 80
没有深深的茬,我们可以做到

import org.scalatest.mockito.MockitoSugar
import org.mockito.Mockito.when    

val config = mock[Config]
val httpConfig = mock[config.Http.type]
when(httpConfig.host).thenReturn("www.example.com")
when(httpConfig.port).thenReturn(80)
when(config.Http).thenReturn(httpConfig)
通过
IdiomaticMockito

import org.mockito.stubbing.ReturnsDeepStubs
import org.mockito.{ArgumentMatchersSugar, IdiomaticMockito}

val config = mock[Config](ReturnsDeepStubs)
config.Http.host returns "www.example.com"
config.Http.port returns 80
没有深深的茬,我们可以做到

import org.scalatest.mockito.MockitoSugar
import org.mockito.Mockito.when    

val config = mock[Config]
val httpConfig = mock[config.Http.type]
when(httpConfig.host).thenReturn("www.example.com")
when(httpConfig.port).thenReturn(80)
when(config.Http).thenReturn(httpConfig)