transactional が true に設定されたサービスでコードをテストしています。これは、顧客が提供する Web サービスと通信し、その主要部分は次のようになります。
class BarcodeService {
..
/// some stuff ...
try{
cancelBarCodeResponse = cancelBarCode(cancelBarcodeRequest)
} catch(myCommsException e) {
throw new RuntimeException(e)
}
...
myCommsException は Exception を拡張します。
次のようなテストがあります
// As no connection from my machine, it should fail ..
shouldFailWithCause(RuntimeException){
barcodeServices.cancelBarcodeDetails()
}
テストが失敗したため、RuntimeException ではなく myCommsException をキャッチしているため、変換したと思っていました。また、それが RuntimeException ではないという事実は、try/catch が破棄されるのではなく、実際に書き出される前に行われたトランザクション関連の情報を意味しますか??
ありがとう