1
我需要測試該郵件是從Django 1.8應用程序發送的;文件清楚說明如何做到這一點,例如Django測試發送電子郵件
https://docs.djangoproject.com/en/dev/topics/testing/tools/#email-services
下面是一些代碼,因此它應該足夠了:
from myapp.utils.mailutils import mail as mymail
from django.core import mail
def testThisFails(self):
user = User.objects.filter(id=1).__getitem__(0)
mymail(user,'Test Message','Test message content, please ignore...')
self.assertEquals(len(mail.outbox), 1)
self.assertEquals(mail.outbox[0].subject, 'Test Message')
...很明顯,我有適當的測試以及。無論如何,我什麼也沒得到,但這樣的:
self.assertEquals(len(mail.outbox), 1)
AssertionError: 0 != 1
這裏有一個類似的問題提的是,locmail後端需要使用:
Django 1.3: Outbox empty during tests
所以,我說這settings.py中:
TESTING = len(sys.argv) > 1 and sys.argv[1] == 'test'
if TESTING:
EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend'
...沒有運氣。即使省略if TESTING
也沒有解決該問題。有沒有什麼方法可以讓我的測試直接使用這個後端?
道歉的延遲迴復,並感謝您的答案。不幸的是我仍然有問題,所以也許除了電子郵件後端設置以外還有其他問題。儘管如此,它可能並不完全清楚。 – knirirr
看起來我設法讓一封電子郵件工作。看起來用戶對象沒有正常工作(可能是夾具的問題)。當我在設置中使用您的修復和發送郵件時,並未先嚐試加載用戶時,我得到一個通過。 – knirirr