ここのところ使い捨てのスクリプトばっかりやっていて感覚が鈍ってきたので、
新規プロジェクトはリアルに数年ぶりにTDD的方法でやろうと思い立ちました。
幸い、今回使うツールであるPython3はかなりしっかりしたテスト ライブラリ"unittest"がついてます。
実際のところ
こんな構成
$ tree . ├── mymodule.py └── test_module.py
mymodule.py
class MyModule(object): def __init__(self, reg_h, reg_l): self._reg_h = reg_h self._reg_l = reg_l def show_regs(self): return (self._reg_h, self._reg_l) def decrease_h(self): self._reg_h -= 1 return (self._reg_h)
test_module.py
import unittest import mymodule class TestModule(unittest.TestCase): def setUp(self): print('\nsetUp') self._mymodule = mymodule.MyModule(8, 1) def test_degrease(self): self.assertEqual(7, self._mymodule.decrease_h()) def test_degrease_after(self): self._mymodule.decrease_h() self.assertEqual((7,1), self._mymodule.show_regs()) if __name__ == "__main__": unittest.main()
動かしてみる
$ python test_module.py setUp . setUp . ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK