如何在ScalaTest中测试两个或多个异常?
我使用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
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])