unittestのサンプルスクリプト

Pythonでは、JUnitの流れをくむunittestを使うよりも、noseや他のテスティングフレームワークを使う方が便利である。

しかしながら、Python以外のプログラミング言語を使う時のことを考えると、unittestを理解しておくのも、そう悪くはない。

■テストクラス作成物語
「よし、円クラスをテストするクラスを書こう」

(ファイル名) circle_test.py

from unittest import TestCase
from unittest import main

class CircleTest(TestCase):
    def setUp(self):
        self._circle = Circle(10)

    def test_area(self):
        self.assertEqual(self._circle.area(), 314)


if __name__ == '__main__':
    main()

「実行」

$ python circle_test.py

まだ Circleクラスを作っていないので、当然エラー。

エラーがなくなるように、Circleクラスを作る。
(ファイル名) circle.py

class Circle:
    def __init__(self, radius):
        self._radius = radius

    def area(self):
        return self._radius ** 2 * 3.14

circle_test.pyからCircleクラスをインポートする。

from circle import Circle # ファイルの最初の方に書く。

テストクラスを再実行する。

$ python circle_test.py

よし、動いた。

この調子で、テストメソッドの作成とクラスへの実装を繰り返す。