我正在尝试模拟sendEmails()
方法,并希望测试是否使用“test@test.com”电子邮件地址调用第二个参数。
@mock.patch('apps.dbank.management.commands.optin_invites.OptinBase.sendEmails')
def test_x_send_emails(self, send_emails_mock):
oi = OptinInvitesX()
oi.compute(True, "test@test.com")
self.assertTrue(send_emails_mock.assert_called_with(???, test_email_address="test@test.com"))
我可以使用assert_called_with
,但我不关心此测试用例的第一个参数。有没有办法说第一个参数接受任何东西?
答案 0 :(得分:0)
当我尝试同样的事情时,我无法弄清楚该怎么做。
这是一个有点hacky的解决方法:
from mock import MagicMock
class YesMan(object):
def __eq__(self, other):
return True
anything = YesMan()
mock = MagicMock()
mock(x=123, y=456)
mock.assert_called_once_with(x=anything, y=456)
另一种方法是查看属性
>>> mock.call_args
call(y=456, x=123)
并在该对象上构建断言。