[Python] unittestの書き方いろいろ
基本の書き方:
import unittest
class TestWhateverYouWant(unittest.TestCase):
@classmethod
def setUpClass(cls):
'''
ユニットテスト開始時に一度だけ実行される
'''
pass
def setUp(self):
'''
一つ一つのテストメソッド実施前に実行される
'''
pass
def tearDown(self):
'''
一つ一つのテストメソッドの実施後に実行される
'''
pass
def test_hoge(self):
'''
テスト実行時、def test_〇〇〇 というように
testから始まるメソッドがすべて実行される
'''
pass
モックについて:
テスト対象のクラスでテストが書きにくいものがあった場合にモックオブジェクトで置き換えることができる。
from unittest import mock
class TestMock(unittest.TestCase):
@mock.patch('module.ClassName2')
@mock.patch('module.ClassName1')
def test_class(self, mock1, mock2):
assert mock1 is module.ClassName1
assert mock2 is module.ClassName2
@mock.patch('module.some_method_name')
def test_method(self, mock1):
'''
some_method_name()をモックに置き換えてテストを書くことができる
'''
pass