测试SEND_EMAIL不工作
问题描述:
我不知道为什么,当我运行测试它总是失败,Asse田:0 = 1 即使r的结果是1测试SEND_EMAIL不工作
class UserProfileTaskTest(TestCase):
def test_send_email(self):
subject = 'subject'
body = 'body'
from_email = '[email protected]'
recipient_list = ['[email protected]']
r = send_mail(
subject=subject,
message=body,
from_email=from_email,
recipient_list=recipient_list
)
print(r)
self.assertEqual(len(outbox), 1)
答
发件箱是特殊类型属性,不能直接导入,但当您使用电子邮件后端发送电子邮件时,则mail.outbox将作为列表并将电子邮件数据保存到发件箱列表中。因此,使用下面的示例为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 = '[email protected]'
recipient_list = ['[email protected]']
mail.send_mail(
subject=subject,
message=body,
from_email=from_email,
recipient_list=recipient_list
)
self.assertEqual(len(mail.outbox), 1)
当你运行上面的代码,你有初始mail.outbox = []
但发送电子邮件后,将其保存EmailMessage
比如在列表中。
+0
谢谢!它的工作原理就是我没有阅读足够的文档https://docs.djangoproject.com/en/1.11/topics/testing/tools/#email-services – mengkheang
什么是发件箱? – vZ10
我敢打赌,他们正在像这样''从django.core.mail导入发件箱'导入它' – Brobin
@Brobin是我导入它就像:)我刚刚开始学习Django我不知道这是一个特殊的属性。 – mengkheang