我如何断言用pytest调用了模拟的类方法?

时间:2019-11-22 20:07:35

标签: python mocking pytest

# blah app
class MyClass():
    def some_method():
        pass

# some_app app
from blah.service import MyClass
def some_app_function()
    my_class = MyClass()
    my_class.some_method()


@pytest.mark.django_db
def test_class_method_called(mocker):
    my_class = mocker.patch('some_app.MyClass')
    service.some_app_function()
    assert my_class.some_method.called # Getting False

我对函数做了完全相同的事情,它可以工作,但是当called不是类中的方法时,True不是Documentation ================= .. toctree:: :maxdepth: 4 ../path/to/releasenotes.rst ../path/to/general_api_usage.rst main_content.rst 。我想念什么?

1 个答案:

答案 0 :(得分:0)

您要修补的名称与some_app_function来自同一模块;您打错了名字。

@pytest.mark.django_db
def test_class_method(mocker):
    my_class = mocker.patch('service.MyClass')
    sevice.some_app_function()
    assert my_class.some_function.called