Pythonでテストをしてみよう(unittest)
Sponsored Links
皆さんこんにちは
お元気ですか。私は元気です。
本日はunittestについて勉強してみましょう。
unittestとはPythonでのテストのライブラリです。JUnitとかCppUnitが親戚に当たりますね。
Pythonでは標準についているので、昨日使ってみるとかなり便利でした。
以下のコードが例です。今回はaddが正確に動作するかをテストしてみましょう。
import unittest def add(a,b): return a + b class TestSequenceFunctions(unittest.TestCase): def test_add(self): result = add(10,10) self.assertEqual(20,result) if __name__ == '__main__': unittest.main()
テスト作成手順
①unittest.TestCaseを継承したクラスを作る
②中にメソッドを書く、但しtestを先頭につけた名前でないと動きません。
③メソッドの中にテストしたい内容を書く
今回であればself.assertEqual(20,result)です。何をしているのかといいますと、
渡した結果が20であるかどうかを確認してくれます。
さて、これを動作させてみましょう。特に考えず、普通にコマンドを打ってください。
python test.py . ---------------------------------------------------------------------- Ran 1 test in 0.001s OK
因みに少しソースコードを変えてわざと失敗してみると・・・
F ====================================================================== FAIL: test_add (__main__.TestSequenceFunctions) ---------------------------------------------------------------------- Traceback (most recent call last): File "test.py", line 9, in test_add self.assertEqual(20,result) AssertionError: 20 != 30 ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (failures=1)
失敗した箇所の実際の値を教えてくれます。
因みに-v optionを利用すると詳細な結果を出力してくれます。
python test.py -v test_add (__main__.TestSequenceFunctions) ... ok ---------------------------------------------------------------------- Ran 1 test in 0.001s OK
これを使って良いunittest そして Pythonライフを送ってみましょう