Djangoのマニュアルを眺めていて、テストの項があったので読んでみたら"doctest"なるものの存在を知りました。
5.2 doctest -- 対話モードを使った使用例の内容をテストする
doctestはunittest同様、Pythonの標準モジュールです。unittestはその名の通り、単体テスト用のツール。テストケースとなるクラスを書きます。一方、doctestもその名の通り、docstring中にテストコードを書きます。
""" example. >>> a_plus_b(1,2) 3 >>> a_plus_b(2,3) 5 >>> a_plus_b(3,4) 7 """ def a_plus_b(a, b): """ return a + b >>> a_plus_b(10, 20) 30 >>> a_plus_b(100, 200) 300 >>> a_plus_b(1000, 2000) 3000 """ return a + b def _test(): import doctest doctest.testmod() if __name__ == '__main__': _test()
$ python sample_doctest.py
$ python sample_doctest.py -v
Trying:
a_plus_b(1,2)
Expecting:
3
ok
Trying:
a_plus_b(2,3)
Expecting:
5
ok
Trying:
a_plus_b(3,4)
Expecting:
7
ok
Trying:
a_plus_b(10, 20)
Expecting:
30
ok
Trying:
a_plus_b(100, 200)
Expecting:
300
ok
Trying:
a_plus_b(1000, 2000)
Expecting:
3000
ok
1 items had no tests:
__main__._test
2 items passed all tests:
3 tests in __main__
3 tests in __main__.a_plus_b
6 tests in 3 items.
6 passed and 0 failed.
Test passed.
テストと言えば単体テストでxUnitしか考えていませんでしたが、こういう仕組みというかやり方もあるんですね。

