【问题标题】:How to mock a method and see if it was called at all?如何模拟一个方法并查看它是否被调用?
【发布时间】:2014-12-22 12:49:19
【问题描述】:

我有一个方法是这样结束的:

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 参数为假,我必须断言sendEmails() 未被调用。

我想我应该模拟 self.sendEmails() 看看它是否被调用了。

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

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

【问题讨论】:

    标签: python unit-testing python-mock


    【解决方案1】:

    要测试您的模拟是否被调用,只需测试 called attribute 是否为 False

    self.assertFalse(sendEmails_mock.called)
    

    【讨论】:

      猜你喜欢
      • 2018-11-30
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多