0

次のポイント (太字) は、この有名なStackoverflow questionで言及されています: 単体テストを使用すると、コードに大きな変更をすばやく加えることができます。テストを実行したので、今は機能していることがわかります。必要な変更を加えたら、テストを再び機能させる必要があります。これにより、時間を節約できます

私の場合、Python 2.7 でプログラムを書き終えました。PyUnit を使ってテストを書き始めました。テストは、別のファイルに存在する別のクラス ("unittest.TestCase" から派生) になります。(最初は開発前か開発中にテストを書くべきだとは知りませんでした)

テストを書いているとき、私は疑問に思い始めました: プログラム コードを変更してテストを再度実行した場合、テストは変更されていないため、変更しなくても動作するはずです (上記の点は、変更を加える必要があることを示唆しています動作させるためにテストしてください!) 変更されたのはプログラム コード自体であり、テストではありません。

上記の点の最後の文の意味がわかりません。それを理解するのを手伝ってくれる人を見つけられることを願っています。

ありがとう

4

3 に答える 3

1

単体テストはコントラクトを検証します。契約が変更されない場合、それらは変更されません。プログラマーは、UT によってエラーから保護されていると感じながら、実装を自由に変更できます。

あなたが引用した文は契約の変更に関するものです - UT は契約の変更を示しており、プログラマーはこの変更が合理的であることを確認する必要があります。適切に設計されたソフトウェアでは、これは実装の正確性を検証するよりも簡単であるため、プロセスが高速化されます。

于 2013-10-20T18:09:15.947 に答える
0

パッケージの破損がテストで表示されるように、テストでは実際にパッケージ コードを実行する必要があります。

于 2013-10-20T18:07:22.800 に答える