0
안녕하세요, 장고의 견해를 테스트하고 싶습니다. 뷰의 내부에서 나는 그들의 메소드 중 일부를 조롱하고 싶은 두 개의 객체를 생성합니다. 내가보기에 내 테스트 케이스 단계를 디버깅 할 때 시험이패치로 만든 모의 객체 메소드의 부작용을 수정했습니다.
@mock.patch('payments_system.views.FirstObject')
@mock.patch('payments_system.helper_functions.SecondObject')
def test_make_payment_view_with_success(self, MockFirstObject, MockSecondObject):
MockFirstObject.get_value.side_effect = get_value_side_effect //this function is defined and implemented outside my testcase class
MockSecondObject.is_valid.return_value = True
factory = RequestFactory()
request = factory.post(reverse('cardinal-term_url'), data=dict(PaRes="test_parese", MD=None))
self._add_session_to_request(request)
session_data = dict(amount=1000, Centinel_PIType="VISA", Card_Number="40000000000000001", ExpMonth=06,
ExpYear=2016, Cvv2='123')
request = self._add_session_data_to_request(request, **session_data)
response = term_url(request)
self.assertRedirects(response, reverse('payments_system-success', kwargs={"token": "some_token"}))
처럼 보이는, 뷰 내부에 생성 된 객체는 모의 객체의 타입 인 것이 사실이다. 그러나 get_value 메소드는 side_effect 함수를 사용하지 않지만 MockingObject도 리턴합니다. 어떻게 장고보기에서 mocking 개체의 변경 사항을 전달할 수 있습니까? 패치 버전이 다음과 동일합니까?
MockFirstObject = MagicMock(spec=payments_system.views.FirstObject)
MockSecondObject = MagicMock(spec=payments_system.helper_functions.SecondOjbect)
더 많은 조치가 필요합니까?
패치가 까다로울 수 있습니다. 아마도'MockFirstObject.get_value.return_value.side_effect'를 설정해야합니까? –
나는 그것을 시도 할 것이다 .0.ty ... 지금까지 Java에서 Mockito와 조금 다릅니다. – Apostolos
Unfortunatelly 그것이 작동하지 않았다 ... – Apostolos