0
私は関数をモックしようとしています。機能を模擬しようとするとcore.use_cases.add_owner_to_place
モックが動作しません。それは印刷を "厄介な"ままにします。モックは実際の関数を呼び出し続けます
私はmocked_add_owner_to_place.called
を試そうとしましたが、Falseを返します。
私はそれを嘲笑しても実際の機能を使い続けている理由は誰にも分かりますか?
views.py:
from core.use_cases import add_owner_to_place
class CreatePlace(LoginRequiredMixin, FormView):
template_name = 'place/create_place.html'
form_class = PlaceForm
success_url = reverse_lazy('place_list')
def form_valid(self, form):
place = form.save()
add_owner_to_place(place, self.request.user)
return super(CreatePlace, self).form_valid(form)
tests.py:
from unittest.mock import patch, Mock
@patch('core.use_cases.add_owner_to_place')
@patch('core.forms.PlaceForm.is_valid')
@patch('core.forms.PlaceForm.save')
def test_save_should_be_called(self, mocked_save, mocked_is_valid, mocked_add_owner_to_place):
self.client.post(reverse('place_create'), data={})
self.assertTrue(mocked_save.called)
uses_cases.py:周りを検索するので、
def add_owner_to_place(place, user):
print('Ouch')
この理由は、[documentation](https://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch)でかなり詳しく説明されています。 – solarissmoke