2

我有一个基于 Django 的 Web 应用程序,需要在尝试更改注册的电子邮件地址时向用户发送确认电子邮件。该功能已实现,但旨在验证电子邮件内容的生菜测试失败。

为了验证操作,我的计划是使用文件后端 (EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'),然后在我的生菜步骤中验证文件的内容。

当“正常”运行时(例如通过 manage.py runserver),电子邮件文件按预期创建。通过 lettuce (manage.py Harvest) 运行时,网站似乎得到了正确驱动(我使用 Selenium 来驱动它),但没有生成电子邮件文件。

我错过了什么?是否有一些设置(例如在terrain.py 文件中)我需要使用以便在测试过程中也使用文件后端?

4

1 回答 1

4

您可以django.core.mail.outbox按照 django 文档https://docs.djangoproject.com/en/dev/topics/testing/#email-services中的说明使用

from django.core import mail

assert len(mail.outbox) == 1
assert mail.outbox[0].subject == 'Subject here'

Lettuse 使用django.test.utils.setup_test_environment将电子邮件后端覆盖到 locmem 电子邮件后端。

于 2011-11-21T12:12:21.257 回答