ScalaTestを使用して、失敗したTry
の内容をチェックする最善の方法について知りたいと思います。私は、現時点ではやっていることは次のようになります。あなたが見ることができるようにFailure [T]に含まれる例外を確認するにはどうすればよいですか?
"Subject" should "throw proper exceptions.." in {
a[IllegalArgumentException] should be thrownBy {
val tryValue = // some method call..
if (tryValue.isFailure) throw tryValue.failed.get
}
}
、私は例外のラップを解除して手動で投げます。同じことを達成するための慣用的な方法がありますか?
最初に、好きなものに入る前に、 'if(tryValue.isFailure)throw tryValue.failed.get'を' tryValue.get'に置き換えることができます。 –
@TzachZohar私はそれが意味論的に同じことだとは思わない。 'tryValue'が' Failure'ではなく 'Success'である場合、潜在的なテスト結果をより複雑にする別の例外が(' get'呼び出しのために)スローされます(はい、テストは失敗しますが)。または私は間違っていますか? – ceran
tryValueが失敗ではなく成功した場合、例外はスローされず、 'java.lang.IllegalArgumentExceptionがスローされますが例外はスローされませんでした 'とエレガントに失敗します。これはまったく同じですあなたのコードを入手してください。 –