우리는 파이썬을 위해 Mock 을 한동안 사용 하고 있습니다.
이제 우리는 함수를 조롱하려는 상황이 있습니다
def foo(self, my_param):
#do something here, assign something to my_result
return my_result
일반적으로 이것을 조롱하는 방법은 다음과 같습니다 (foo가 객체의 일부라고 가정)
self.foo = MagicMock(return_value="mocked!")
심지어 foo ()를 몇 번 호출하면 사용할 수 있습니다.
self.foo = MagicMock(side_effect=["mocked once", "mocked twice!"])
이제 입력 매개 변수에 특정 값이있을 때 고정 값을 반환하려는 상황에 직면하고 있습니다. "my_param"이 "something"과 같다면 "my_cool_mock"을 반환하고 싶습니다
이것은 파이썬을 위해 mockito에서 사용할 수있는 것 같습니다
when(dummy).foo("something").thenReturn("my_cool_mock")
나는 성공하지 못한 채 Mock으로 동일한 것을 달성하는 방법을 찾고 있습니까?
어떤 아이디어?
monkeypatch
. Monkeypatch는 "테스트를 위해이 기능을 대체"하는 데 도움이되는 반면 Mock은 mock_calls
호출 된 항목 등 을 확인 하거나 어설 션 할 때 사용 합니다. 둘 다를위한 장소가 있으며 주어진 테스트 파일에서 다른 시간에 두 가지를 자주 사용합니다.