1

DAO を単体テストしようとしていますが、問題が発生しています。

まず、私の DAO にはfindById型メソッドという 1 つのメソッドがあります。これの単体テストを書きたいと思います。だから、私の考え方は次のとおりです。

  • このメソッドをテストするには、既知のエンティティを挿入する必要があります
  • DAOを呼び出しfindById()
  • そして、返されたものが最初に挿入したものであると主張します。

今、私が苦労している部分は、挿入を行う方法を理解しようとしています.

私の懸念:

  1. insert現在、DAO にメソッドがありません。私はそれを書くことができましたが、単にテストのためにそれを行う意味がわかりません.

  2. もう 1 つの可能性は、挿入を実行するために Hibernate API (つまり、HibernateTemplate) を使用することです。しかし、私は単体テストを柔軟にしたいと考えています。単体テストを特定の API に関連付けたくありません。

私は何をすべきか?

4

3 に答える 3

1

統合テストの Spring コンテキストを構成するときに、組み込みデータベースに対する Spring のサポートを使用してみることができます。<jdbc:script>タグを使用すると、init および destroy スクリプトを実行できます。

<jdbc:embedded-database type="H2" id="dataSource">
    <jdbc:script execution="INIT" location="setup.sql"/>
    <jdbc:script execution="DESTROY" location="teardown.sql"/>
</jdbc:embedded-database>
于 2013-04-16T08:01:31.627 に答える