我想显示scala测试中抛出的异常消息。
" iWillThrowCustomException Method Failure test.
" should "Fail, Reason: Reason for failing. " in {
evaluating {
iWillThrowCustomException();
} should produce [CustomException]
}
如果CustomExeption将针对不同的输入抛出不同类型的消息,请说
(对于-ve金额 - 金额小于零,对于金额中的字符数 - 无效金额),
如何显示块中抛出的消息,因为它会通过 CustomException它将显示Test Success,但是它为哪个senario抛出了错误
答案 0 :(得分:11)
另外,您可以查看intercept
:
val ex = intercept[CustomException] {
iWillThrowCustomException()
}
ex.getMessage should equal ("My custom message")
答案 1 :(得分:9)
evaluating
也会返回异常,因此您可以检查它或打印消息。以下是ScalaDoc:
val thrown = evaluating { s.charAt(-1) } should produce [IndexOutOfBoundsException]
thrown.getMessage should equal ("String index out of range: -1")
据我所知,您不能在测试名称中包含异常消息。
您可以做的是使用info()
添加有关测试的其他信息:
"iWillThrowCustomException Method Failure test." in {
val exception = evaluating { iWillThrowCustomException() } should produce [CustomException]
info("Reason: " + exception.getMessage)
}
这将在测试结果中显示为嵌套消息。您可以找到有关此in ScalaDoc的更多信息。