0

最近、Spring サポートなしでコードを書いて、この In Service のようなコードを書いてみました..

c = ds.getConnection();
c.setAutoCommit(false);
try {
    dao.findXX(c, id);
    c.commit();
} catch (Exception ex) {
    c.rollback();
}

しかし、DAO をモックしてサービスをテストしようとすると、問題が発生します。getConnection が呼び出されるため、表示したくないデータベースに接続します。

jdbcでサービス/ダオを簡単にテストする方法は?

4

1 に答える 1

0

インメモリデータベース(HSQL、Derby、H2)のいずれかを使用することをお勧めします。
テストが開始されたら、インメモリデータベースへの接続を作成し、モックを作成してds、getConnectionが呼び出されたときにこの接続を返すようにします。

次の接続文字列のいずれかを使用します。

public static final String JDBC_URL_DERBY = "jdbc:derby:memory:some_db_name;drop=true";
public static final String JDBC_URL_HSQL = "jdbc:hsqldb:mem:some_db_name;shutdown=true";
public static final String JDBC_URL_H2 = "jdbc:h2:mem:some_db_name";

これらの接続はすべて、*some_db_name*という名前のメモリ内データベースインスタンスを作成します

于 2012-07-30T06:35:09.000 に答える