2016-04-22 6 views
1

私はSpringサービスをテストするためにJUnitを使用していますが、HSQLDB中間テストへの接続を閉じるのに問題があります。 Beanのdestroy-method属性をデータソースのcloseメソッドに設定しましたが、コンテナを閉じてもロックされたままです。JUnit Spring - HSQLDBは​​efterテストを終了しません

これは私のJUnitテストクラスでのみ発生し、クライアントでは発生しません。私のクライアント上では、私がcloseメソッドを呼び出すと、コンテナが閉じます。

また、私はJUnitテストで@AfterClassメソッドを提供しましたが、それは役に立ちません。

+0

junitテストでは、永続コンテキストが存在しない可能性があります。どのランナーを使用していますか(@RunWithアノテーション)?その春の場合、どのコンテキスト設定をテスト用にロードしていますか?コードを提供できますか? – diarmuid

+0

私はSpringには新しく、VirtualPairProgrammersのSpring Fundamentalsコースに従っています。だから私は基本的なJUnitと基本的なSpringを現在知っているだけです。コードは機能しますが、データベースはテスト間で閉じないため、テストの一部がちょっと怪しいです。私のデータソースはdbcpで、私はJDBCを使用しています。それはあなたが求めていたものですか? – Lithicas

+0

あなたは問題のjunitクラスを投稿またはリンクできますか? – diarmuid

答えて

0

あなたのJunitテストは、ユニットテストのためにHSQLDBで何をしていますか? HSQLDBやDBコミットを必要とする更新/削除の新しいレコードを追加していますか? HSQLDBのautocommit = falseを設定し、DML操作をコミットまたはロールバックなしで実行するかどうかを確認します。

+0

データベースに追加および削除します。また、いくつかのテストでDBからデータを取得します。 – Lithicas

+0

前述したように、autocommit = falseで操作を実行しているかどうかを確認し、単体テストで特にcommit()操作を呼び出さないでください。自動コミットかどうかわからない場合は、DBの挿入/更新/削除のたびにcommit()を呼び出すか、@Afterアノテーションが追加されている関数でcommit()を呼び出してください。 – wonhee

関連する問題