私は自分のオープン ソース プロジェクトの 1 つについて、緩やかな TDD ワークフローに従おうとしています。これは、他のプログラマーが使用するための API です。
そのため、API を「機能させる」だけでなく、その使用方法を設計することも重要な側面の 1 つです。コンパイルする前にテストを書くのは時間の無駄であり、API が安定するまで何度も書き直す傾向があると言う人もいます。また、次のようなワークフローに従う必要があると聞いたことがあります。
- コンパイルできないテストを書く
- コンパイルさせる
- 緑にしろ
私はこのワークフローに従おうとしてきましたが、最終的には奇妙なことがいくつかあります。たとえば、私の API には次の 2 つのメソッドがあります。
Handles(string pattern); //had this one already
Handles(IPatternMatcher pattern); //needed this one
メソッドの 2 番目の形式を API に追加する必要がありました。だから、私は次のような単純なテストで終わった:
public void Handles_SupportsIPatternMatcher()
{
var api=new MyAPI();
api.Handles(new TestPatternMatcher());
}
実装された後、これは無駄のように思えます。
このワークフローに従うべきですか、それとも改善する方法はありますか? 基本的にコンパイラ エラーをチェックするだけのテストを作成しないようにするにはどうすればよいですか? これは公に使用可能な API であるため、このようなテストについて心配する必要がありますか?