概要
unittest は Python3 に標準で搭載されているテストモジュールです
簡単なクラスを作成してテストしてみました
環境
- macOS 10.13.5
- Python 3.6.5
テスト対象のコード
- vim car.py
class Car(object):
def __init__(self, name , color):
self.name = name
self.color = color
self.dist = 0
def run(self):
self.dist += 10
テストコード
- car_test.py
import unittest
from car import Car
class TestCarClass(unittest.TestCase):
@classmethod
def setUpClass(cls):
print('setUpClass')
def setUp(self):
print('setUp')
@classmethod
def tearDownClass(cls):
print('tearDownClass')
def tearDown(self):
print('tearDown')
def test_run(self):
c1 = Car('note', 'black')
c1.run()
self.assertEqual(c1.dist, 10)
def test_name(self):
self.c = Car('fit', 'silver')
self.assertEqual(self.c.name, 'fit')
if __name__ == '__main__':
unittest.main()
python3 -m unittest test.py
テストを実行するときは -m で unittest を指定します
テストのクラスは unittest.TestCase
を継承する必要があります
setUp と tearDown は各テストが実行される前と後で毎回呼ばれます
setUpClass と tearDownClass はこのテストが実行される際に最初と最後で一度だけ呼ばれます
テストには命名規則があり test_xxx
という感じで test が先頭に付与される必要があります
他に使える assert は公式のページに記載があります
最後に
他にも minitest や pytest というライブラリがあります
標準の unittest もかなり機能はそろっているので正直これで十分なケースがほとんどかなと思います
0 件のコメント:
コメントを投稿