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