uniitest @patchの使い方

@patchの記載

下図のように、@pathchで関数を呼び出し、クラス内のメソッドの引数に渡して使用。

引数に代入した関数にassert~を適用し結果と比較する。

 

 

 

以下のように記載するとmy_functionで定義したprint文をテストできる。

sampleTest.py
import unittest
from unittest.mock import patch
def my_function():
    print("aaa")
class TestMyFunction(unittest.TestCase):
    @patch('builtins.print')
    def test_print_aaa(self, mock_print):
        my_function()
        mock_print.assert_called_once_with("aaa")

 

 

 

@patchを複数使用する場合

@patchを複数使用する場合は以下の図の様にそれぞれの関数を代入する変数を準備する。この時、関数と変数の順序が入れ替わることに注意。