Scala中带异常的抽象类和Mockito测试
我有一个抽象类,如下所示:Scala中带异常的抽象类和Mockito测试,scala,unit-testing,mockito,scalatest,Scala,Unit Testing,Mockito,Scalatest,我有一个抽象类,如下所示: abstract class ReadOnlyJsonFormat[T] extends RootJsonFormat[T] { final def write(obj: T): JsValue = throw DeserializationException("Unsupported operation") } 想法很简单:我的子类实现一个只读JSON,我不关心将任何对象写入JSON 现在,我想使用Mockito通过一个mock来测试这样的类,在这里我可以调用
abstract class ReadOnlyJsonFormat[T] extends RootJsonFormat[T] {
final def write(obj: T): JsValue = throw DeserializationException("Unsupported operation")
}
想法很简单:我的子类实现一个只读JSON,我不关心将任何对象写入JSON
现在,我想使用Mockito通过一个mock来测试这样的类,在这里我可以调用实现的方法,下面的工作如下:
"My nice test" should "raise an exception" in {
val readOnlyJsonFormat = mock[ReadOnlyJsonFormat[Int]]
intercept[DeserializationException] {when(readOnlyJsonFormat.write(1)).thenCallRealMethod()}
val exc = intercept[DeserializationException] {
readOnlyJsonFormat.write(1)
}
exc.getMessage must be ("Unsupported operation")
}
但是,由于我的方法在.write()
时抛出异常,因此在定义mock的行为时,我被迫截获此类异常,这在Java中是不必要的。我是不是用错了Mockito?我尝试使用ScalaMock,但还没有找到一种方法来调用真正的方法