OK、これはマニュアルに記載されており、おそらくand/orと関係がある
ことは知っていますが、単純で直接的な例が非常に役立ちます。 side_effect
return_value
私は持っている:
class ClassToPatch():
def __init__(self, *args):
_do_some_init_stuff()
def some_func():
_do_stuff()
class UUT():
def __init__(self, *args)
resource_1 = ClassToPatch()
resource_2 = ClassToPatch()
UUT
ここで、クラスの単体テストを行い、 ClassToPatch
. クラスUUT
が正確に 2 つのClassToPatch
オブジェクトをインスタンス化することがわかっているので、インスタンス化ごとに Mock フレームワークが新しい Mock オブジェクトを返すようにして、後でそれぞれの呼び出しを個別にアサートできるようにします。
@patch
テストケースでデコレータを使用してこれを達成するにはどうすればよいですか? つまり、次のコード サンプルを修正するにはどうすればよいでしょうか。
class TestCase1(unittest.TestCase):
@patch('classToPatch.ClassToPatch',autospec=True)
def test_1(self,mock1,mock2):
_assert_stuff()