断言一个方法是用一个对象作为agumen调用的

2024-04-26 04:38:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想测试一个调用对象某个方法的函数。我所需要的只是测试该对象的方法是否以对象作为参数被调用。场景是这样的:

    def foo(settings):
        handler = somemodule.Somehandler()
        if settings.get('key') is True:
            handler.some_method(Formatter('foo'))
        return handler

我想测试是否用Formatter对象作为参数调用some_method 我的测试是这样的:

    @patch('somemodule.Somehandler')
    def test_foo(self, mockhandler):
        mockhandler.some_method = MagickMock()
        Formatter = MagickMock()
        foo(mysettings)
        mockhandler.some_method.assert_called_with(Formatter('foo'))

但断言失败并出现错误:
E AssertionError:预期调用:some\u method() 我没打电话


Tags: 对象方法函数参数settingsfooformatterdef