私は現在、TDD の方法で JDBC ドライバーの実装を作成しています (はい、あなたはそれを正しく読んでいます)。この時点ではクラス スタブといくつかのマイナーな機能しか完成していませんがStatement、 forPreparedStatementは のスーパークラスですCallableStatement。実際にこれらのクラスの実装のテストを書き始めたらどうすればよいでしょうか。次のうちどれを実行すればよいでしょうか。
- のテスト スイートを作成し、
Statementそのスイートを の追加テスト用に拡張してからPreparedStatement、 に対して同じことを行いCallableStatementます。 - スーパークラスから継承されたメソッドを無視して、各実装を個別にテストします。
- 実装クラスごとにすべてのメソッドを個別に厳密にテストします。結局、一部の継承されたメソッドは実装によって異なる動作をする可能性があります。これの穏やかなバリエーションは、実装が使用するすべての継承されたメソッドをテストすることです。
2 番目が最も自然に感じますが、3 番目の理由から、そうするのが賢明かどうかはわかりません。それで、私は何をすべきだと思いますか?