それは興味深い質問であり、答えはあなたが思うより簡単かもしれません。
簡単に言えば、仮定を検証するテストを作成します。あなたが実装を行うか、あなたの仲間のプログラマーかは関係ありません
長い答え。
リストするオプションはいずれもやや受動的であり、遅かれ早かれ戻ってコードを再確認する必要があります(存在する場合)。
- コメントは、実装を担当する相手が読んで処理する必要があります。それまではコードをコンパイルできません。コードリポジトリでそのような状態をチェックすると、継続的インテグレーションパイプラインは機能せず、とにかく悪い習慣です... 壊れたコードをチェックインしないでください
- ランタイム例外はより良いように見えますが、それでも毒性があります。なぜなら、仲間のプログラマーは、チェックを行わずに実装がすでに行われ、システムも不安定な状態のままであると想定できるからです。メソッドがそれほど頻繁にトリガーされない場合、プロダクションコードが破損する可能性があります...悪い習慣も... 「実装されていない」例外をチェックインしないでください
- メソッドやスタブの実装を仲間のプログラマーを待つのも大変です。それはあなたのワークフローとあなたの仲間のプログラマのワークフローを壊します。彼らが病気で、会議中に、コーヒーブレイク中に何が起こるか、あなたはあなたの時間を待って過ごしたいですか?... 必要がない場合は誰かを待たないでください
- 欠落しているメソッドを実装することは、間違いなく前進するための最良の方法です。しかし、実装がユースケース全体を満たさず、仲間のプログラマーがそれを修正または変更する必要がある場合はどうなりますか?あなたと彼らは、それがあなたの意図と互換性があることをどのように確認しますか?答えは簡単です。意図を検証、説明、文書化するテストを作成します。テストが中断した場合、簡単に気付くことができます。その方法で変更を行う必要があり、機能が壊れる場合は、すぐに表示されます。あなたには、コミュニケーションを取り、何をすべきかを決定する理由があります。機能を分割しますか?実装の変更など... テストで十分に文書化されていないコードはチェックインしないでください
十分なレベルのテストを達成するには、2つの分野を確認することをお勧めします。
TDD-テスト駆動開発-これにより、意図を説明し、十分にテストすることができます。また、まだ実装されていないメソッドやクラスを(インターフェイスを使用して)モックまたは偽造することもできます。コードとテストは引き続きコンパイルされ、他のプログラマーのコードとは独立して独自のコードをテストできます。(参照:https : //en.wikipedia.org/wiki/Test-driven_development)
ATDD-受け入れテスト駆動開発-これにより、機能全体をテストするのに役立つ外側のループ(TDDループの周り)が作成されます。これらのテストは、機能全体が実装された場合にのみ緑色に変わるため、フェローが作業を完了すると自動的にインジケーターが表示されます。あなたが私に尋ねるなら、かなりきちんとした。
警告:あなたの場合、私は単純な受け入れテストを書くだけで、ビジネス側の多くを持ち込もうとはしません。機能が必要とするシステムのすべての部分をまとめる簡単な統合テストを作成します。必要なのはそれだけです
これにより、コードを継続的統合パイプラインに配置して、信頼性の高い実装を作成できます。
そのトピックをさらに詳しく知りたい場合は、次のリンクを確認してください。