Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala中带异常的抽象类和Mockito测试_Scala_Unit Testing_Mockito_Scalatest - Fatal编程技术网

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,但还没有找到一种方法来调用真正的方法