0

我正在尝试使用 pytest、mock 和 drf 测试我的函数是否被端点调用。

我在以下视图中覆盖了 create 方法:

class MyView(viewsets.ModelViewSet):
    queryset = MyModel.objects.all()
    serializer_class = MySerializer
    model = MyModel

    def create(self, request, *args, **kwargs):
        # some code...
        my_function() # I call here

我的功能:

def my_function():
    # some code

我的测试:

def test_call_my_func(mocker, client):
     mocked_my_func = mocker.patch("my_app.my_file.my_function")
     response = client.post(
        "/api/v1/my-endpoint/",
        data={
            # some data
        },
        format="json",
    )
     mocked_my_func.assert_called_with("something") 

但我得到这个错误:

>       mocked_my_func.assert_called_with("something") 
E       AssertionError: Expected call: my_function('something')
E       Not called

使用调试,在同一个测试中,我知道该函数是由端点调用的。

4

0 回答 0