私は初めてTDD方法論を適用したプロジェクトに取り組んでいます。 要件が変更され、いくつかのクラスの動作とAPIを変更するまで、すべてうまくいった クラスの動作を変更すると、結局いくつかの変更が行われました。 テスト側からこのプロセスを開始する方法がわからなかったので、コードを変更し始めました。 テストコードで多くのコンパイルエラーが発生してしまいました。 しかし、問題は、私が以前にカバーしていたものがテストでカバーしているかどうか分からない。 書くとき、私は私がテストを追加したとして、作品によって量産コード部分を追加 が、私が変更されたすべてのテストクラスの上に移動して、確認するために持っているように、今そう:TDDとRefactoring the "system under test"
- 各テストがまだ関連 であること
- リファクタリングしながら、私のセーフティネットを与えるために、テストが
TDDを想定している任意の偽陽性または偽陰性を生成しませんミッシングテスト
私は間違っていますか? これはそのようなリファクタリング作業を行う方法ですか、それとも良い方法ですか?
ありがとうございます! 私は実際に行動を変えていました(リファクタリングは正しい言葉を忘れてしまいました)。私は実際に2つの他のクラスとやり取りしていたクラスを削除しました。もちろん、これらの2つのクラスの動作が変更され、テストも変更されました。 –
私はあなたが(B)で言ったことを理解します。テストを変更して実装を変更するためのドライバとして使用することはできますが、一度に1つのテストをTDDに書き込むよりもはるかに複雑に思えます。 影響を受けるクラスの機能のいくつかは同じままであり、いくつかの変更が残っているため、いくつかのテストがありません。 –
クラスに加えられた変更を理解するのが難しい場合は、現在のクラスが実際に複数のことをしているかどうかを慎重に検討し、各クラスが変更する単一の理由があるまでそれらを分割しようとします。 –