Python 在 class 方法中通过的 unittest 测试被调用
Python unittest test passed in class method is called with
我有一个方法需要两个输入一个电子邮件 class 和一个数据字典。
def send_email(data, email_client):
**** various data checks and formatting *****
response_code = email_client.create_email(recipient=receipient
sender=sender
etc...)
我正在尝试编写一个单元测试,该测试将断言 email_client.create_email 已根据输入数据使用正确的值调用。
在我的测试文件中有
from emailer.email import send_email
class TestEmails(unittest.TestCase):
def test_send_email(self):
email.send_email(get_transactional_email_data, MagicMock())
我通常通过类似于以下内容的方法来测试调用方法的内容:
mock.assert_called_with(recipient=receipient
sender=sender
etc..)
但是,由于这次我正在测试通过(和 MagicMock)调用传入 class 的内容,我不知道应该如何完成。
我认为您不需要 MagicMock。只需预先创建模拟
from emailer.email import send_email
class TestEmails(unittest.TestCase):
def test_send_email(self):
myclient = Mock()
mycreate = Mock()
myclient.create_email = mycreate
email.send_email(get_transactional_email_data, myclient)
self.assertTrue(
mycreate.called_with(sender='...')
)
我有一个方法需要两个输入一个电子邮件 class 和一个数据字典。
def send_email(data, email_client):
**** various data checks and formatting *****
response_code = email_client.create_email(recipient=receipient
sender=sender
etc...)
我正在尝试编写一个单元测试,该测试将断言 email_client.create_email 已根据输入数据使用正确的值调用。
在我的测试文件中有
from emailer.email import send_email
class TestEmails(unittest.TestCase):
def test_send_email(self):
email.send_email(get_transactional_email_data, MagicMock())
我通常通过类似于以下内容的方法来测试调用方法的内容:
mock.assert_called_with(recipient=receipient
sender=sender
etc..)
但是,由于这次我正在测试通过(和 MagicMock)调用传入 class 的内容,我不知道应该如何完成。
我认为您不需要 MagicMock。只需预先创建模拟
from emailer.email import send_email
class TestEmails(unittest.TestCase):
def test_send_email(self):
myclient = Mock()
mycreate = Mock()
myclient.create_email = mycreate
email.send_email(get_transactional_email_data, myclient)
self.assertTrue(
mycreate.called_with(sender='...')
)