也许我不明白发件箱是如何工作的,但从文档中我了解到它只是在测试期间捕获所有外发邮件。
我使用新应用程序创建了一个新项目并添加了以下代码。
from django.test import TestCase
from django.core.mail import send_mail, outbox
class SimpleTest(TestCase):
def test_basic_addition(self):
send_mail('Subject here',
'Here is the message.',
'from@example.com',
['to@example.com'],
fail_silently=False)
self.assertEqual( len( outbox ), 1 )
当我运行 python manage.py test app_name 时,它会给出一个断言错误,即 0 != 1。我做错了什么吗?
更新
好吧,如果我导入 django.core.mail 并使用 mail.outbox 它确实有效,这很奇怪。
试图比较 outbox 和 mail.outbox 的直接导入,它们都给出了不同的结果
from django.core import mail
from django.core.mail import send_mail, outbox
...
self.assertEqual(outbox, mail.outbox)
返回:
- []
+ [<django.core.mail.message.EmailMessage object at 0x1e1fd90>]
也许我已经工作了很长时间并且错过了一些非常明显的东西?