0

私の DAO レイヤーでは、ストアド プロシージャを呼び出すことによってすべてのデータベース作業を行っています。EasyMock を使用して DAO レイヤーのテストに成功した人はいますか?

ありがとうダミアン

4

1 に答える 1

3

それは不可能だと思います。(EasyMock やその他のモック フレームワークを使用して) DAO が実際に何らかのストアド プロシージャを呼び出したことを主張したり、それが何をしたかを検証したりする方法はありません。

DAO + EasyMock でできる唯一のことは、DAO をモック/スタブすることですが、DAO をテストするのではなく、DAO で動作する共同作業者 (MVC を話している場合は通常、ある種のコントローラー) をテストします。

DAO/StoredProcedures の統合テストを行うには、DBUnitをお勧めします。

  1. testdata をデータベースに入れます (jUnit を使用している場合は、@Before メソッドでこれを行います)。
  2. テスト対象の DAO メソッドを呼び出す
  3. メソッドが何らかの結果を返した場合、これを (1) の期待データと比較します。
  4. メソッドがいくつかの挿入/更新を実行した場合、「読み取りメソッド」を呼び出し、結果を (1) と比較します。

DAO がビジネス エンティティにCRUDを提供する場合、DAOの各操作をテストできます。

  • testLoad・DBから読み込んで(1)と比較
  • testInsert- 新しいエンティティを DB に挿入し、リロードして比較します
  • testUpdate- 既存のエンティティを変更し、DB に保存してリロード/比較する
  • testDelete- (1) からいくつかのエンティティを削除し、それをロードして失敗したことをアサートします (他に何も削除されていないことを確認するのも良いことです)。
于 2011-03-02T22:40:52.447 に答える