pythonその3 ユニットテスト
pythonでユニットテスト。unittestという機能が標準で入ってるらしい。しかし、importとfrom x import yはどういう順序で書くのだろう?とりあえずcのincludeと同じと考えて、以下で書いてみる。
import unittest from calc import Calc
ユニットテストをこさえた時点でこんな感じになった。
自作のCalcクラスのadd()は、引数としてxとyを取る。xとyは整数型を期待してるんだけど、検証は全くやってないんで、引数を検証する処理を追加して、テストケースを追加で書いたのが以下。
データ型の変換については
細かすぎて伝わりにくい、Pythonの本当の落とし穴10選(私の小岩ホッチキス)、例外のテストのやり方はPython – unittestのassertRaisesの使い方(ぼっち勉強会)を参考にさせていただきました。
さらに追加テスト。個々の値の検証はできたとして、最大値+1したらどうなるか、int型として超えちゃうから実行時例外が発生するかなと思ったけど、できちゃった…返り値のデータ型がintじゃなくてlongで帰ったんだろうか?
def test_add_max(self): c = Calc() x = sys.maxint y = 1 result = 0 result = c.add(x,y) print '{0} + {1} = {2}'.format(x, y, result) self.assertEqual(x + y, result)
実行結果。
$ python calc_test.py Calc Test 100 + 200 = 300 .Calc Test 9223372036854775807 + 1 = 9223372036854775808 .Calc Test . ---------------------------------------------------------------------- Ran 3 tests in 0.001s OK $
Trackbacks and Pingbacks on this post
No trackbacks.
- TrackBack URL
Comments on this post