Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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
如何在ScalaTest中测试两个或多个异常?_Scala_Scalatest - Fatal编程技术网

如何在ScalaTest中测试两个或多个异常?

如何在ScalaTest中测试两个或多个异常?,scala,scalatest,Scala,Scalatest,我使用ScalaTest进行单元测试。我目前有以下情况: f(x) should produce[Exception] 我想指定两个或多个Exception子类,例如 f(x) should (produce[ExceptionA] or produce[ExceptionB]) 这可能吗?如果没有,推荐的方法是什么?如果您有一个代码块在抛出的异常中是不确定的,我会考虑重新构造代码或测试。也就是说,您可以使用求值块捕获抛出的异常,然后检查它是否为所需类型之一。e、 g val caught

我使用ScalaTest进行单元测试。我目前有以下情况:

f(x) should produce[Exception]
我想指定两个或多个Exception子类,例如

f(x) should (produce[ExceptionA] or produce[ExceptionB])

这可能吗?如果没有,推荐的方法是什么?

如果您有一个代码块在抛出的异常中是不确定的,我会考虑重新构造代码或测试。也就是说,您可以使用
求值
块捕获抛出的异常,然后检查它是否为所需类型之一。e、 g

val caught = evaluating {
  // code that should throw an exception
} should produce [Exception]
然后

assert(caught.isInstanceOf[ExceptionA] || caught.isInstanceOf[ExceptionB])