pythonその3 ユニットテスト

pythonでユニットテスト。unittestという機能が標準で入ってるらしい。しかし、importとfrom x import yはどういう順序で書くのだろう?とりあえずcのincludeと同じと考えて、以下で書いてみる。

import unittest
from calc import Calc

ユニットテストをこさえた時点でこんな感じになった。

calc_test.py

自作の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
$

Comments on this post

No comments.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackbacks and Pingbacks on this post

No trackbacks.

TrackBack URL