如何在 ScalaTest 中测试两个或多个异常?
How to test for two or more exceptions in ScalaTest?
我正在使用 ScalaTest 进行单元测试。我目前有以下内容:
f(x) should produce[Exception]
我想指定两个或更多异常子类,例如
f(x) should (produce[ExceptionA] or produce[ExceptionB])
这可能吗?如果没有,推荐的继续方式是什么?
如果您有一段代码在抛出异常时不确定,我会考虑重构您的代码或测试。也就是说,您可以使用 evaluating
块来捕获抛出的异常,然后检查它是否是所需类型之一。例如
val caught = evaluating {
// code that should throw an exception
} should produce [Exception]
然后
assert(caught.isInstanceOf[ExceptionA] || caught.isInstanceOf[ExceptionB])
我正在使用 ScalaTest 进行单元测试。我目前有以下内容:
f(x) should produce[Exception]
我想指定两个或更多异常子类,例如
f(x) should (produce[ExceptionA] or produce[ExceptionB])
这可能吗?如果没有,推荐的继续方式是什么?
如果您有一段代码在抛出异常时不确定,我会考虑重构您的代码或测试。也就是说,您可以使用 evaluating
块来捕获抛出的异常,然后检查它是否是所需类型之一。例如
val caught = evaluating {
// code that should throw an exception
} should produce [Exception]
然后
assert(caught.isInstanceOf[ExceptionA] || caught.isInstanceOf[ExceptionB])