私があなたに尋ねたい質問は非常に広いですが、同時に非常に具体的です。まず、.net 環境に適用できる回答に主に関心があると言わざるを得ません。
うーん、自分が作るコードのレベルを上げたい。今では主に TDD と静的コード分析を使用して、コードが正しいことを確認しています。最近、コード コントラクトに関する Dino Esposito のスピーチを聞いたので、他の手法と組み合わせて使用したいと考えています。Dino を聴きながら、Debug.Assert()
とも思い出しましたTrace.Assert()
。
具体的には、いくつかの質問をします。
- コントラクトと単体テストを相互に補完するには、どのように記述すればよいですか?
- すべてのメソッドでコード コントラクトを使用する必要がありますか?それともパブリック メソッドでのみ使用する必要がありますか?
- の使用を防止する必要があり
Debug.Assert()
ますか? それらを使用してもよいのはいつですか?(たとえば、.net の不変条件はパブリック メソッド/プロパティの終了時にのみチェックされることに注意してください。したがって、単純な方法でメソッドの途中でいくつかのチェックを行っても問題ありAssert()
ませんか?) - 百聞は一見に如かずというわけで、これらすべての手法が適切に使用されているオープン ソース プロジェクトをお勧めしていただけませんか?