私はちょうどTails with Railsに入っています。私に困惑しているのは「テストを書くとき」です。すべてのガイドは、コードを記述する前にテストを書くべきだが、Personモデルを作成してから、コードを書く前に次のテストを書くことをお勧めします。Rails TDD - 最初に書き込むもの
p = Person.new
p.firstname = "mikey"
p.lastname = "hogarth"
assert_equal p.fullname, "mikey hogarth"
次に、テスト自体は失敗しません、それはクラッシュします!私はまだ "fullname"メソッドを実装していないので、ランタイムエラーが発生します。したがって、コードを書くまで、私はおそらくそのテストを失敗させることはできません。
TDDコーダーは、通常どのようにこのような状況に近づいていますか?それは基本的にダミーのメソッドスタブであるか、それとも良い方法ですか?
===編集===素晴らしいアイデアの
多くが示唆されました。私は最終的に次の選択肢が私が最も優雅にやろうとしていたことを達成することを決めました。
if p.respond_to? "fullname"
assert_equal "Mikey Hogarth", p.fullname
else
flunk "fullname not implemented"
end
=== SECOND EDIT ===
あなたはこの答えに遭遇した場合、上記のコードが動作するしばらくので、それは良い習慣ではない、TDDへの私の全体的なアプローチが問題だったようです。
なぜp.fullnameが定義されているかテストしないでください。 – prusswan
私はそれがこのようなものかもしれないと思った、私はこの種の構文で遊んでいた。 p = Person.new; methods =%q {name firstname fullname}; methods.each {|メソッド| p.respond_toをアサートしますか?方法 }。 これは一般的に人々がどのように行うのでしょうか? –
@MikeyHogarth私はあなたが例でケントベックのテスト駆動開発を手に入れることをお勧めします。 Javaを使用していますが、本の概念はどの言語にも当てはまります。それはTDDの "Hello World"の本と考えられています。 http://www.amazon.co.uk/Test-Driven-Development-Addison-Wesley-Signature/dp/0321146530 – Finglas