2011-01-17 19 views
2

すぐにorg.springframework.jdbc.object.StoredProcedureクラスに大きく依存するサービス層クラスにユニットテストを書いています。 サービスオブジェクトは、単純なバッチクラスで、ストアドプロシージャからデータを読み取り、集約して別のストアドプロシージャに送信します。StoredProcedureをモックする

(これはデータベースに大きく依存するため)このような単体テストに関するベストプラクティスは何でしょうか。偽のオブジェクト(メソッドスタブのセット)を使用するか、データベースのバックエンドを使用してモックを書くか、現実のものをミラーリングする必要があります(インフラストラクチャを最新の状態に保つコストがかかります)。

できるだけ怠け者で、品質を保証したい。

+2

BTWは「品質を保証しながら、できるだけ怠惰です」と呼ばれています。 –

答えて

1

私は個人的に、H2のような組み込みデータベースを使ってこのような場合に単体テストを行います。

これが役に立ちます。

+0

Java関数はストアドプロシージャとして使用できますか?期待していると思う、私はそれをチェックします。 –

0

この場合、エンドツーエンドのテストについては心配しません。私はストアドプロシージャの呼び出しをスタブして、あなたのコードが期待どおりに動作することを確認します。

次は、ストアドプロシージャをテストすることです。 oracleプラットフォームを使用している場合は、ruby-plsqlを使用してprocをテスト駆動できます。私は以前これをプロジェクトに使用しており、うまくいきます。あなたがOracleプラットフォーム上にいない場合は、テスト結果に異なる結果が表示されるようにストアドプロシージャを呼び出すことができるテストハーネスに何かを構築する必要があります。幸せな道のりといくつかの縁の場合を撮影するだけです。

関連する問題