鉄は熱いうちに打て
=============================

unittest.mock.patchを使ってみる(デコレータ)

2017-12-17

今日の内容は、 Pythonでテストしたい にまとめている内容の詳細部分です。

unittest.mock.patch(デコレータ)を使ってみます。

sample_method.py

sample_methodを読み込んでテストする

意味がないテストになっていますが、 @patch('sample_method.SampleMethod.method_1') と書いて、引数の最後に mock_method_1 を追加すると、 mock_method_1.return_value = 'AAA' と書くことで、 SampleMethod.method_1 の戻り値を置き換えられます。

こちらはモジュールを読み込む場合に @patch() にはパッケージ名から追加するそうです。 @patch('SampleMethod.method_1') と書いても動きませんでした。

公式ドキュメント もどうぞ。