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

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

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

  • DAOImpl の addUser() メソッド

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

リーリー
  • テストクラス

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

リーリー
阿神
阿神

闭关修行中......

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

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

いいねを押す+0
    typecho

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

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