Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在类方法中通过的Python unittest测试用_Python_Unit Testing_Magicmock - Fatal编程技术网

在类方法中通过的Python unittest测试用

在类方法中通过的Python unittest测试用,python,unit-testing,magicmock,Python,Unit Testing,Magicmock,我有一个方法,它接受两个输入:emailer类和dict数据 def send_email(data, email_client): **** various data checks and formatting ***** response_code = email_client.create_email(recipient=receipient sender=sender

我有一个方法,它接受两个输入: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调用传入类的内容,所以我不知道应该怎么做

我认为你不需要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='...')
    )