我有一个由一些选项组成的案例类。让我们说
case class Clazz(field: Option[String] = None)
我试图在最新的规范中模拟这个类来传递给另一个函数。像...
val clazz = mock[Clazz]
它使字段成为null
。
后来这个clazz被序列化为带有circe.io库的JSON,当然它会触发错误:scala.MatchError: null
。因为它希望选项为Some
或None
。
所以我的问题是......如何强制mockito对选项使用None而不是null。好像它需要一些隐含的东西。
或者可能是完全不同的方法?
谢谢!
答案 0 :(得分:0)
请参阅:Mocking default values for return types with mockito + specs2
在ScalaTest中,使用org.scalatest.mockito.MockitoSugar
语法如下:
val mockEth = mock[Clazz](new Answer[Any] { ... } )
答案 1 :(得分:0)
你必须定义什么是答案。至少我不知道mockito中的这种内置功能。当您的测试类扩展org.scalatest.mockito.MockitoSugar
:
// Configurated mock
val clazzMock = mock[Clazz]
when(clazzMock.field).thenReturn(None)
println(s"Configurated mock. Field: ${clazzMock.field}")
// Non-configurated mock
println(s"Non-configuarted mock. Field: ${mock[Clazz].field}")