[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


いいなと思ったら応援しよう!