TDDで「実際の」コードを記述するのはいつですか?
トレーニングビデオで読んで見たすべての例には、単純化した例があります。しかし、グリーンになった後に「実際の」コードをどのように実行するかはわかりません。これは「リファクタリング」の部分ですか? 複雑なメソッドを持つかなり複雑なオブジェクトがあり、テストとそれをパスするための最低限のものを書いた場合(最初に失敗した後、赤)。いつ戻って実際のコードを書きますか?そして、再テストする前に実際のコードをどれだけ書くのでしょうか?最後の方がより直感的だと思います。 編集: 答えたすべての人に感謝します。あなたの答えはすべて私を非常に助けてくれました。私が質問したり、混乱させたりしたことについては、さまざまなアイデアがあるようです。 私のデザインには、最初に作りたいアーキテクチャ、ユーザーストーリーなどがあります。ここから、それらのユーザーストーリーを取得し、ユーザーストーリーをテストするためのテストを作成します。ユーザーは、「学校に入学して登録料を支払う人がいます」と言います。だから、私はそれを失敗させる方法を考えます。そうすることで、クラスX(多分Student)のテストクラスを設計しますが、これは失敗します。次に、クラス「Student」を作成します。たぶん「学校」は分かりません。 しかし、いずれにせよ、TD デザインは私に物語を考えさせることを強いています。テストを失敗させることができる場合、失敗する理由はわかりますが、これは合格することを前提としています。それは設計についてです。 私はこれを再帰について考えることに例えました。再帰は難しい概念ではありません。実際に頭の中でそれを追跡するのは難しいかもしれませんが、実際には、最も難しいのは、再帰が「壊れる」とき、いつ停止するかを知ることです(もちろん、私の意見です)。最初に再帰。これは不完全なアナロジーに過ぎず、各再帰反復が「パス」であると想定しています。繰り返しますが、単なる意見です。 実装では、学校は見にくいです。数値および銀行台帳は、簡単な算術を使用できるという意味で「簡単」です。a + bが表示され、0などが返されます。人々のシステムの場合、それを実装する方法をより厳しく考えなければなりません。私は失敗、合格、リファクタリングの概念を持っています(主に研究とこの質問のため)。 私の知らないことは、私の意見では経験の不足に基づいています。新しい学生のサインアップに失敗する方法はわかりません。誰かが姓を入力し、データベースに保存されるのを失敗させる方法がわかりません。私は簡単な数学のためにa +1を作る方法を知っていますが、人のようなエンティティでは、誰かがデータベースまたはその両方、またはどちらでもありません。 または、これは私がまだ混乱していることを示しているかもしれません。