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

时间:2014-10-27 10:52:03

标签: 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:
          logging.debug("send_emails = False - No emails were sent out.")

我应该如何对这种情况进行单元测试,其中is_send_emails参数为false,我必须声明sendEmails()未被调用。

我以为我应该嘲笑self.sendEmails()以确定它是否被调用。

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

但现在我卡住了,怎么检查。这个site解释了我可以使用的不同断言,但它们似乎都不合适。我应该使用assert_called_with吗?

1 个答案:

答案 0 :(得分:3)

要测试您的模拟是否,请测试called attributeFalse

self.assertFalse(sendEmails_mock.called)