テスト勉強中(doctest編)
近頃あまり書いてないですが会社の勉強会でRuby+BDD(RSpec/autospec)の勉強中です。*1
Rubyだけでなく、pythonでのテストも調べたくなりました。
今回は有名どころでdoctestを使って、テスト駆動開発の第一章のコードを書いてみました。
class Dollar(object): def __init__(self,amount): ''' >>> three=Dollar(3) >>> three.amount 3 ''' self.amount=amount def times(self,multiplier): ''' >>> five=Dollar(5) >>> five.times(2) >>> five.amount 10 ''' self.amount *= multiplier def _test(): import doctest doctest.testmod() if __name__ == "__main__": _test()
これをDollar.pyで保存し、以下のコマンドを実行してみました。
python Dollar.py -v
結果は以下
Trying: three=Dollar(3) Expecting nothing ok Trying: three.amount Expecting: 3 ok Trying: five=Dollar(5) Expecting nothing ok Trying: five.times(2) Expecting nothing ok Trying: five.amount Expecting: 10 ok 3 items had no tests: __main__ __main__.Dollar __main__._test 2 items passed all tests: 2 tests in __main__.Dollar.__init__ 3 tests in __main__.Dollar.times 5 tests in 5 items. 5 passed and 0 failed. Test passed.
なるほど、">>>"を使うと必ず評価されるんですね。
これは手軽ですね。これからはテストをどんどん書くようにしたいと思います。
テスト1000本ノックを目指そうかな。
今度はunittest,nose,py.testなども試してみたいと思います。

- 作者: ケントベック,Kent Beck,長瀬嘉秀,テクノロジックアート
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2003/09
- メディア: 単行本
- 購入: 43人 クリック: 995回
- この商品を含むブログ (153件) を見る

レガシーコード改善ガイド (Object Oriented SELECTION)
- 作者: マイケル・C・フェザーズ,ウルシステムズ株式会社,平澤章,越智典子,稲葉信之,田村友彦,小堀真義
- 出版社/メーカー: 翔泳社
- 発売日: 2009/07/14
- メディア: 大型本
- 購入: 44人 クリック: 628回
- この商品を含むブログ (133件) を見る
*1:そのうちまとめる予定です。タイトルは"素人がBDDに手を出してみた(仮)"の予定です