1
我如何使用ScalaMock簡單地模擬Guice中注入所需的接口?如何用ScalaMock模擬Guice模塊中的接口?
我如何使用ScalaMock簡單地模擬Guice中注入所需的接口?如何用ScalaMock模擬Guice模塊中的接口?
通過將模擬實例綁定到類名稱並使用該模塊爲測試注入對象來使用單獨的測試模塊。
測試模塊是這樣的:
class TestModule extends AbstractModule {
override def configure(): Unit = {
val mockObject = mock[ClassName]
bind(classOf[ClassName]).toInstance(mockObject)
}
}
規格是這樣的:
class SomeSpec extends FlatSpec {
val injector = Guice.createInjector(new TestModule)
val mockObject = injector.getInstance(classOf[ClassName])
}
我已經結束了使用
import org.scalamock.MockFactoryBase
import org.scalatest.exceptions.TestFailedException
trait MyMockFactory extends MockFactoryBase {
type ExpectationException = TestFailedException
override protected def newExpectationException(message: String, methodName: Option[Symbol]): TestFailedException = ???
}
和TestModule
class TestModule extends AbstractModule with MyMockFactory {
override def configure(): Unit = {
val mockObject = mock[ClassName]
bind(classOf[ClassName]).toInstance(mockObject)
}
}
對於你的測試,你不應該使用Guice。因此,不要注入,你應該直接調用構造函數或者手工完成注入來編寫單元測試。 –