类方法中传递的Python unittest使用

2024-06-28 20:13:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个方法,它接受两个输入一个emailer类和一个dict数据

def send_email(data, email_client):
     **** various data checks and formatting *****
     response_code = email_client.create_email(recipient=receipient
                                               sender=sender
                                               etc...)

我正在尝试编写一个单元测试,它将断言email\u client.create\u 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),所以我不知道应该怎么做


Tags: 数据方法clientsenddataemaildefcreate
1条回答
网友
1楼 · 发布于 2024-06-28 20:13:55

我觉得你不需要魔法石。先做些模拟

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='...')
    )

相关问题 更多 >