7

Scalaテストでスローされた例外メッセージを表示したいと思います。

 " iWillThrowCustomException Method Failure test.   
 " should "Fail, Reason: Reason for failing. " in {
 evaluating {
      iWillThrowCustomException();
   } should produce [CustomException]
}

CustomExeptionが異なる入力に対して異なるタイプのメッセージをスローする場合、たとえば

(-veの金額の場合-金額がゼロ未満、charの金額の場合-無効な金額)

ブロックにスローされたメッセージを表示する方法は、CustomExceptionを介して表示され、テストの成功が表示されるためですが、どのシナリオでエラーがスローされたか

4

2 に答える 2

11

または、チェックアウトすることもできますintercept

val ex = intercept[CustomException] {
    iWillThrowCustomException()
}
ex.getMessage should equal ("My custom message")
于 2012-09-29T11:32:45.503 に答える
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)
}

これは、ネストされたメッセージとしてテスト結果に表示されます。詳細については ScalaDoc を参照してください

于 2012-09-29T11:29:43.490 に答える