Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何模拟一个方法并查看它是否被调用?_Python_Unit Testing_Python Mock - Fatal编程技术网

Python 如何模拟一个方法并查看它是否被调用?

Python 如何模拟一个方法并查看它是否被调用?,python,unit-testing,python-mock,Python,Unit Testing,Python Mock,我有一个方法的结尾如下: def compute(self, is_send_emails, test_email_address): ... if is_send_emails: self.sendEmails(uniq_email_pids=uniq_email_pids, test_email_address=test_email_address) else:

我有一个方法的结尾如下:

def compute(self, is_send_emails, test_email_address):
    ...
    if is_send_emails:
          self.sendEmails(uniq_email_pids=uniq_email_pids,
                                    test_email_address=test_email_address)
    else:
          logging.debug("send_emails = False - No emails were sent out.")
我应该如何对这种情况进行单元测试,其中
is\u send\u emails
参数为false,并且我必须声明未调用
sendmails()

我想我应该模拟一下self.sendmails(),看看它是否被调用过

def test_x(self):
    with mock.patch('apps.dbank.x.sendEmails') as sendEmails_mock:

但现在我被卡住了,如何检查。这解释了我可以使用的不同断言,但它们似乎都不合适。我是否应该使用
assert\u called\u with

来测试您的模拟是否被调用,只需测试is
False

self.assertFalse(sendEmails_mock.called)