def foo
a & b & c & d
end
これはアプリケーション ロジックにとって非常に重要なので、適切なテストを作成する必要があります。メソッド a、b、c、d は既にテスト済みです。a、b、c、d を機能させて要求された値を返すには、完全なデータを準備する必要がありますか、それともこの場合はスタブで十分ですか?
def foo
a & b & c & d
end
これはアプリケーション ロジックにとって非常に重要なので、適切なテストを作成する必要があります。メソッド a、b、c、d は既にテスト済みです。a、b、c、d を機能させて要求された値を返すには、完全なデータを準備する必要がありますか、それともこの場合はスタブで十分ですか?
これを本当に徹底的にテストしたい場合は、2種類の自動テストを作成します。a、b、c、dをスタブとして受け取る単体テストと、すべてのロジックが一緒にうまく機能することを確認する統合テストです。統合の問題はありません。
単体テストは、テスト対象のメソッド、つまり foo のみをテストする必要があります。つまり、a、b、c、および d をスタブ化する必要があります。
それを利用するには、これらのメソッドの戻り値から生じる可能性のあるすべてのコーナーケースをカバーする必要があります。
徹底的にテストしたいというご希望には感謝しますが、スタブを使用したこの単体テストは、&
オペレーターが適切に動作することをテストするだけです。その演算子はあなたのコードではありません。
スタブの代わりにモックを使用すると、少なくともすべてのメソッドが呼び出されることをテストできますが、それは実際には一種のドキュメント テストにすぎません。
ただし、データを使用した統合テストは役立つ場合があります。