java - 単体テスト、データベースを汚染せずにSpringにトランザクションを管理させる方法
阿神
阿神 2017-06-12 09:25:30
0
2
1024

DAO メソッドをテストするために springjunit を使用しようとしています。インターネット上で、トランザクションに Spring の宣言型トランザクション管理 (つまり @Transactional) を使用するメソッドをいくつか見たことがあります。テストが完了すると、Spring はテスト メソッドをロールバックし、それによってテストの目的が達成されることを示します。
次に、このアプローチに従って dao で操作を追加する方法をテストしたところ、トランザクションの送信後にロールバックが成功せず、テストしたデータベースに余分なデータがあることがわかりました。 。最初は Spring がロールバックを実行していないためだと思いましたが、後でコンソールの印刷情報を観察したところ、ロールバック情報はあったものの、なぜ失敗したのかは不明でした。関連する解決策をいくつか見つけましたが、問題は解決されませんでした。とても困っているので相談に来たのですが、アドバイスをいただければ幸いです。

以下は私のコードと対応する構成です

  • DAOImpl の addUser() メソッド

リーリー
  • Daos.xml ファイルに対応する構成

リーリー
  • テストクラス

リーリー
  • コンソール印刷情報の一部

リーリー
阿神
阿神

闭关修行中......

全員に返信(2)
我想大声告诉你

テストには dbunit を spring-test と組み合わせて使用​​します

いいねを押す +0
typecho

Transactional はサービス層のトランザクションです。これを使用すると、DAO 層でトランザクションを記述する必要がなくなります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!