3

私はいくつかのレイヤーを備えたセットアップを持っています:

  • Webサイト
  • アプリケーション/サービス
  • ドメイン (エンティティを含む)
  • 永続性 (リポジトリを含む)

スタブオブジェクトからメモリ内に作成されたデータを使用して、永続化レイヤーを分離して問題なくテストしています。

今、私は自分の Web サイト層をテストすることを考えています。私はそれを分離してテストする必要があることを知っています。これは、使用するアプリケーション層オブジェクトのスタブを作成することを意味すると考えていますが、このスタブには、永続層のスタブで複製された独自のメモリ内データのセットが必要であり、やりたくありませんこれを複製して管理します。

だから私の質問は、テスト対象は常に下のレイヤーのスタブオブジェクトを使用して分離する必要があり、通常は独自のデータセットを持っているのでしょうか? または、テスト対象の Web メソッドが、スタブ データを使用して永続層を呼び出すアプリケーション層の軽量オブジェクトを呼び出しても問題ありませんか?

ご協力いただきありがとうございます。これが私にとってパズルの最後のビットのように感じます...

4

3 に答える 3

6

理想的には、単体テストでは、テスト対象の各サブジェクトはその依存関係から分離されます。依存関係の1つが壊れて、テスト対象のサブジェクトが失敗したために、テスト対象のサブジェクトが壊れているとは思わないでください。このようにテストすると、間違った場所でバグを追跡するのに多くの時間を費やす可能性があります。

物事がどのように連携するかをテストすることは、単体テストではなく、統合テストの領域です。

于 2010-02-05T01:16:39.640 に答える
1

または、テスト対象のWebメソッドが、スタブデータを使用して永続層を呼び出すアプリケーション層の軽量オブジェクトを呼び出すことはできますか?

これを行うと、テストを単体テストとは呼ばなくなります。テストが失敗した場合、バグはどこにありますか?-しかし、統合テスト。私を誤解しないでください。統合テストも問題ありません。それは別の目的を持っているだけです。ただし、Webサイト層を分離して単体テストすることが目標である場合は、直接の依存関係をモック/スタブする必要があります。

于 2010-02-05T01:17:09.683 に答える
0

テスト データの設定は面倒な作業になる場合があります。DotNet を使用している場合は、NBuilder というライブラリを使用して、テスト データを非常に簡単かつ迅速に生成できます。それは素晴らしい流暢なインターフェースをサポートしています。詳細については、こちらをご覧ください。

于 2010-11-23T02:58:52.287 に答える