断言函数不是在Python单元中执行的

2024-04-23 09:58:00 发布

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

我使用Django作为我的web开发框架。现在我正在写unittest。我如何断言一个函数没有在我的测试代码中执行?在

在这个例子中,<我的用户输入的是一个错误的密码。我想确保在这个用例中没有执行重置密码功能。在

好吧,这并不能真正反映真实情况,但我希望你能明白我的意思。在


Tags: django函数功能框架web密码断言unittest
3条回答

使用mock.patch.objectassert_not_called或{}来执行此操作。 假设您在mymodule.py中定义函数:

def function_can_not_be_called():
    pass

def func(call):
    if call:
        function_can_not_be_called()

test_mymodule.py中的测试代码

^{pr2}$

我想回答我自己的问题。到目前为止,我的解决方案是使用^{}。示例这是重置密码函数的位置:utils/password.py

class Password(object):

    def reset(self):
        ...

所以我需要在我的测试代码test/login.py模拟这个对象

^{pr2}$

我要做的是使用mock。模拟函数并断言mock_function.call_count==0。在

您可以在这里阅读有关mock的更多信息:
https://docs.python.org/3/library/unittest.mock.html

相关问题 更多 >