PythonでTDD
PythonでもTDDを導入してみたいので、簡単なソースでお試ししてみる。
使っているのはPython2.7なんだけど、標準ライブラリにunittestというのがあるらしい。
でも最近は nose というのが使われているらしいので乗っかってみる。
nose のインストール
$ easy_install nose Searching for nose Reading https://pypi.python.org/simple/nose/ Best match: nose 1.3.4 Downloading https://pypi.python.org/packages/source/n/nose/nose-1.3.4.tar.gz#md5=6ed7169887580ddc9a8e16048d38274d Processing nose-1.3.4.tar.gz Writing /var/folders/5q/j2ypq41j30v1zm_s7kq9t6n40000gp/T/easy_install-yqYb1G/nose-1.3.4/setup.cfg Running nose-1.3.4/setup.py -q bdist_egg --dist-dir /var/folders/5q/j2ypq41j30v1zm_s7kq9t6n40000gp/T/easy_install-yqYb1G/nose-1.3.4/egg-dist-tmp-Lw0Yc5 no previously-included directories found matching 'doc/.build' Adding nose 1.3.4 to easy-install.pth file Installing nosetests script to /usr/local/bin Installing nosetests-2.7 script to /usr/local/bin Installed /usr/local/lib/python2.7/site-packages/nose-1.3.4-py2.7.egg Processing dependencies for nose Finished processing dependencies for nose
簡単^ ^準備完了?ちゃんと動くんかな
テストケースを書いてみる
Python nose でユニットテストを書いてみた / 桃缶食べたい。 こちらを参考にさせていただき、書いてみた。
myfunc.py
# -*- coding: utf-8 -*- def add(num1, num2): return num1 + num2
test/test.py
# -*- coding: utf-8 -*- from myfunc import add class TestAdd(object): def setup(self): pass def teardown(self): pass def test_add_nums(self): assert add(1, 10) == 11
実行
$ nosetests -v test.TestAdd.test_add_nums ... ok ---------------------------------------------------------------------- Ran 1 test in 0.003s OK
OK!!