3

DB へのデータの書き込み中に例外が発生した場合、失敗する前に 5 回再試行する必要がある機能を実装しています。機能を実装しましたが、arquillian テストを使用してテストできません。

JPAとVersantをデータベースとして使用しています。これまで、私は arquillian テストをデバッグしており、フローが DB ハンドラー コードに到達したら、データベースを停止しています。しかし、これは最悪のテスト方法です。

同じことを達成する方法について何か提案はありますか?

4

2 に答える 2

0

ネイティブ ソリューション

データベースにはゼロで除算するという古いトリックがあります。選択時に、次のことを試すことができます。

select 1/0 from dual;

挿入時間 (テーブルが必要です):

insert into test_table (test_number_field) values (1/0);

純粋な JPA ソリューション

アノテーションを利用して、@Versionそれをデクリメントして throwすることができOptimisticLockExceptionます。これはデータベースではなく、Java レイヤーでスローされますが、ニーズを満たします。

これらはすべて、DB の失敗につながります。

于 2016-08-08T14:39:21.860 に答える