私はテストが開発を促進する必要があることを知っている限り、c#を使用してTDDを学んでいます。つまり、最初にテストに合格するために最低限のコードを書いてからリファクタリングを行ってから失敗するテストを書きます。
しかし、「実装ではなく、インターフェイスするプログラム」とも言われているため、最初にインターフェイスを記述します。ここから混乱が始まります。最初にInterfaceを書いている場合、2つのことに違反しています。
インターフェイス用に記述されたコードはtestによって駆動されません。
単純なクラスでそれを書くことができるのは、明らかに最低限のものではありません。
インターフェースのテストを書くことから始めなければなりませんか?実装なしで何をテストするのですか?
この質問がそれについて愚かに残念に思えるが、私は全く混乱しています。文字通りに物事を取っているかもしれません。
contract
。これは、たとえば抽象クラスの形式にすることができますが、インスタンス化できないため、仮想クラス/メソッドであってはなりません。
interface
すべてを使用するという意味ではありません。Aは、class
あなたが実装の詳細を隠すことができますので、また、インターフェイスを提供しprivate
た変数。