doctest は、関数ヘッダ(又はファイルヘッダ)にテスト内容を記載することで、関数単体テストを実施できるようにするモジュールです。
実際の関数単体テストの記述は以下のようになります。
def count_if(target, predicate=bool): """ Count items in target which satisfies condition ... 省略 ... >>> count_if([0, 1, 2, 3, 0, 1, 2, 3, 0]) 6 >>> count_if([0, 1, 2, 3, 0, 1, 2, 3, 0], ... lambda x: x % 2 == 0) 5 >>> count_if(['', 'a', '', 'b', '']) 2 """ return sum(predicate(i) for i in target)
doctest の長所と短所として、以下が挙げられます。
長所1: テストを別ファイルにしなくてよい
長所2: テスト内容はドキュメントとしても使える
長所3: unittestからdoctestを取り込み可能
短所: 大掛かりなテストには不向き
手軽に関数単体テストを実施できる点は、実に Pythonic なモジュールと言えます。
しかし、大掛かりなテスト(準備だけの専用関数が必要、テスト項目が数十もある、等)となると、やはりテスト専用のファイルを用意してやる必要があります。
0 件のコメント:
コメントを投稿