私は現在、趣味のプロジェクトでテスト駆動開発のプロセスを試しています。概念は理解していますが(最初に単体テストを作成し、失敗するのを見て、機能させる、コードをリファクタリングする)、まだいくつか質問があります。
私が取り組んでいるプロジェクトは、PythonのMUDクライアントです。現在、私はtelnetプロトコルの実装で忙しいです。(Pythonにはすでにtelnetlibがあり、Twistedには実装があることは知っていますが、それは重要ではありません)
現在、Telnetプロトコル(または少なくともその一部)とそのさまざまな単体テストを実装するクラスTelnetHandlerがあります。それらはかなり大きいので、pastebinにあります:TelnetHandlerとユニットテスト
私の問題は次のとおりです。
- 多くのテストは相互に依存しています。たとえば、
test_handle_read
テストが失敗すると、他の多くのテストも失敗します。 - クラスが呼び出されることになっているメソッドを追加し
TelnetOptionsTests
て、それらが呼び出されたかどうかを確認します(さまざまなlocal_option_enabled
メソッド)。現在、クラスにはこれらのメソッドがありません。それらの存在を確認するためだけに単体テストを追加する必要がありますか? - テストを書き始めたとき、
handle_read
telnetコマンドも解析するようにメソッドを変更しました。その後、テストを完了したら、handle_read
をさまざまな_handle_do
、_handle_dont
などに分割します。ただし、元のテストであるため、それらの単体テストはありませんhandle_read
。これは適切な方法ですか、それともメソッドを異なるメソッドに分割する場合にも単体テストを作成することをお勧めしますか?
基本的に、私が求めているのは、ユニットテストのスキルを向上させるのに役立つさまざまなヒントと指針です。
ありがとうございました!