古い手書きのプログラマー、テストケースを書くことに新しい(私が知っている私には恥)。入出力を直接マッピングするテストを記述するか、結果を動的に生成する必要がありますか?
テストケースを書くには二つの方法があるように私には思える:
- 地図固定入力が固定出力に、彼らは彼らのダイナミックな出力に
- 生成された地図または固定入力と一致していることを主張することを主張試合
# Static testing:
assert_equal "test".upcase, "TEST"
# Dynamic testing:
assert_equal person.full_name, "#{person.title} #{person.first_name} #{person.last_name}"
もちろん、それぞれのアプローチに長所と短所があります。実装の詳細を複製するのは間違っていますが、サンプルデータを生成してテストを実行することができます。ハードコーディング値は正しい出力を非常に明示的にしますが、コードを再利用するためにはそれを自分自身に貸し出すようには見えません。
前者はテストを書く従来の方法ですか?あなたはアプローチを組み合わせてマッチしますか?後者の方法は、私が考えなかった正当な理由で避けられますか?
私の動的テストの例は、メソッドの組み合わせに直接依存していました。たとえば、あるメソッドが三角形の面積を正しく計算しているかどうかをテストする場合はどうなりますか?私は固定入力と出力を使うべきですか、またはテスト中の領域を計算するために重複したコードを実装する必要がありますか?これはあなたが「間違っている」ことを意味しているのですか?これらの種類のテストケースで値を厳密にコードする必要がありますか? – nfm
ありがとう、すばらしい説明 – nfm