最近のクローラ周りのunittestを書いていたのですが、テスト速度の改善や安定化のためにmockのpatchを使おうとして色々とハマったのでまとめておきます。 mock?patch? Pythonのunittestにはテスト時に一部の関数を置き換えることを目的としたMockを生成するクラスが用意されています。 26.5. unittest.mock — モックオブジェクトライブラリ 以下のように作成したMockオブジェクトは何も定義していなくてもどんな呼び出し方にも対応し、またその呼び出され方を記憶しています。 In [1]: from unittest.mock import Mock In [2]: mock_obj = Mock() In [3]: mock_obj() # 引数なしでの呼び出し Out[3]: <Mock name='mock()' id='4584656792'