新聞中心
如果你的任何 Django 視圖使用 Django 的郵件功能 發(fā)送電子郵件,你可能不想每次使用該視圖運(yùn)行測(cè)試時(shí)都發(fā)送電子郵件。出于這個(gè)原因,Django 的測(cè)試運(yùn)行器會(huì)自動(dòng)將所有 Django 發(fā)送的郵件重定向到一個(gè)虛擬的發(fā)件箱。這讓你可以測(cè)試發(fā)送郵件的每一個(gè)方面——從發(fā)送郵件的數(shù)量到每封郵件的內(nèi)容——而不用實(shí)際發(fā)送郵件。

我們提供的服務(wù)有:網(wǎng)站建設(shè)、做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、渾源ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的渾源網(wǎng)站制作公司
測(cè)試運(yùn)行器通過透明的將正常的郵件后端替換為測(cè)試后端來實(shí)現(xiàn)。
django.core.mail.outbox
在測(cè)試運(yùn)行過程中,每一封發(fā)出的郵件都會(huì)保存在 ?django.core.mail.outbox? 中。這是所有已經(jīng)發(fā)送的 ?EmailMessage ?實(shí)例的列表。 ?outbox ?屬性是一個(gè)特殊的屬性,只有在使用 ?locmem ?郵件后端時(shí)才會(huì)創(chuàng)建。它通常不作為 ?django.core.mail? 模塊的一部分存在,你也不能直接導(dǎo)入它。下面的代碼展示了如何正確訪問這個(gè)屬性。
下面是一個(gè)檢查 ?django.core.mail.outbox? 長度和內(nèi)容的測(cè)試示例:
from django.core import mail
from django.test import TestCase
class EmailTest(TestCase):
def test_send_email(self):
# Send message.
mail.send_mail(
'Subject here', 'Here is the message.',
'from@example.com', ['to@example.com'],
fail_silently=False,
)
# Test that one message has been sent.
self.assertEqual(len(mail.outbox), 1)
# Verify that the subject of the first message is correct.
self.assertEqual(mail.outbox[0].subject, 'Subject here')在 Django ?*TestCase? 中的每個(gè)測(cè)試開始時(shí),測(cè)試發(fā)件箱都會(huì)被清空。要手動(dòng)清空發(fā)件箱,將空列表分配給 ?mail.outbox?:
from django.core import mail
# Empty the test outbox
mail.outbox = [] 網(wǎng)站題目:創(chuàng)新互聯(lián)Django4.0教程:Django4.0測(cè)試工具-郵件服務(wù)
文章來源:http://www.dlmjj.cn/article/dpisghj.html


咨詢
建站咨詢
