0

これは、単体テストに関する私の質問の 1 つです。

The Art Of Unit Testing を読んでいて、第 3 章で著者が 1 つ以上のクラス間の依存関係を削除する方法を示しています。それは私には明らかです。はっきりしないのは次の点です。

スタブを使用してテスト メソッドを構成するときは、特定の値を返すように構成します。次に、テスト済みのクラスによって公開されたテスト済みのメソッドを呼び出します。このメソッドはいくつかのロジックを実行し、スタブの戻り値を使用します。問題は、スタブが間違った値を返すように構成されている場合、テストがおそらく失敗することです。

問題は、スタブを使用する場合、期待値を返すように常に構成する必要があるかどうかです。私の意見では、スタブが常に期待値を返すかのように、これはテストする正しい方法であるはずです。テストされたメソッド内のロジックのみをテストすることを確認しています。

これについてあなたはどう思いますか?スタブに不正確な値を返さなければならない何らかの意味がある場合はありますか?

どうもありがとう、マルコ

4

2 に答える 2

2

いくつかの条件下で sut (テスト対象のシステム) がどのように機能するかをテストしています。

  • 適切なパス =適切な値を返すようにスタブを構成し、それに応じて sut が動作することをテストする
  • 悲しいパス =間違った値でスタブを構成し、sut がそのようなケースを処理できることを確認します (たとえば、nUnit を使用している場合は、ExpectedException 属性を使用して例外をスローすることをテストできます)。
于 2012-01-08T11:34:31.387 に答える
1

一部のシナリオでは、テストのセットアップに応じて値を返すようにスタブ メソッドを構成できます。その他では、有効なはずのデフォルト値を返します。

于 2012-01-08T11:31:45.507 に答える