测试发送电子邮件不起作用

2024-10-02 10:32:27 发布

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

我不明白为什么我运行测试时总是失败,AssertionError:0!=1 即使r的结果是1。在

class UserProfileTaskTest(TestCase):

    def test_send_email(self):
        subject = 'subject'
        body = 'body'
        from_email = 'from_email@test.com'
        recipient_list = ['recipient@test.com']

        r = send_mail(
            subject=subject,
            message=body,
            from_email=from_email,
            recipient_list=recipient_list
        )

        print(r)

        self.assertEqual(len(outbox), 1)

Tags: fromtestselfcomsendemaildefbody
1条回答
网友
1楼 · 发布于 2024-10-02 10:32:27

发件箱是一种特殊类型的属性,不能直接导入,但当你使用电子邮件后端发送电子邮件时邮箱将作为列表工作,并将电子邮件数据保存到发件箱列表。所以用下面的例子来判断是否发送了testmail。在

from django.core import mail
from django.test import TestCase

class UserProfileTaskTest(TestCase):
    def test_send_email(self):
        subject = 'subject'
        body = 'body'
        from_email = 'from_email@test.com'
        recipient_list = ['recipient@test.com']
        mail.send_mail(
            subject=subject,
            message=body,
            from_email=from_email,
            recipient_list=recipient_list
        )
        self.assertEqual(len(mail.outbox), 1)

当您运行上面的代码时,您有初始的mail.outbox = []

但在发送电子邮件之后,它将EmailMessage实例保存在列表中。在

相关问题 更多 >

    热门问题