2011-06-21 10 views
1

私が書かなければならないテストの種類については同じ誤りがあります。 私たちのアプリケーションには異なるモジュールがあります。すべてのpojos、daos、すべての休止状態のstuffs.ItはCRUD操作を行い、他のすべてのモジュールについてはわかりません。modelというものがあります。単体テストとインテグレーションmavenデータベースレイヤーモジュールで境界をテストする

DAOを書いた後は、オブジェクトが永続化され削除されていることを実際に証明するテストがあるように感じます。実際にこれまで読んだことではなく、統合テストになります。

また、モックを使って単体テストを行うことは、CRUD操作に関係する限り私には意味がありません。

今、私は、モジュールをテストする際には、やるべき姿勢が分かれています。

ここでベストプラクティスは何ですか?適切なプロジェクトでは何が行われますか?

お読みいただきありがとうございました

答えて

2

私は考えることのできるアプローチがいくつかあります。

これは、統合テストまたは単体テストテストのどちらに過ぎないでしょうか。通常、このタイプのモジュールはテストするビジネスロジックがほとんどないため、CRUD操作だけがテスト可能なものです。あなたが簡単にアクセスできるデータベースを持っていて、あなた自身の後できれいにするテストを設計すれば、うまくいくでしょう。テストの開始前にダンプするだけのデータベースがあれば、さらに良いでしょう。

他のアプローチでは多くの場所で使用されていますが、テスト用にメモリデータベースに使用されています(Hypersonicなど)。しかし、異なるデータベースを使用しているため、作成する製品を正確にテストしているわけではありません。それでも、あなたのHibernateマッピングとクエリ(それはターゲットdb固有ではありません)を検証します。これはおそらくモジュールの最も重要なテスト可能な側面です。

+0

こんにちは、私はファイルモードではhsqldbを使用しています。mysql.theターゲットデータベースはmysqlです。私はコンテキストでスクリプトを使用しています。テスト対象のdbのプロパティファイルを切り替えます(mysql .jdbc.properties/msyql.hibernate.propertiesおよびhsqlの場合も同じです)。だから私はちょうどそれに固執すると思います。ありがとう –

関連する問題