中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

上海網(wǎng)站備案流程app下載注冊(cè)量推廣平臺(tái)

上海網(wǎng)站備案流程,app下載注冊(cè)量推廣平臺(tái),網(wǎng)絡(luò)營(yíng)銷的方式有哪些?舉例說(shuō)明,wordpress css合并我們需要從訪客那里收集哪些信息,以便將其登記為電子郵件通訊的訂閱者? 電子郵件地址:這是最基本的要求,因?yàn)槲覀冃枰ㄟ^(guò)電子郵件地址向訂閱者發(fā)送內(nèi)容。姓名:雖然這不是強(qiáng)制性的,但我們希望收集一個(gè)名字…

我們需要從訪客那里收集哪些信息,以便將其登記為電子郵件通訊的訂閱者?

  1. 電子郵件地址:這是最基本的要求,因?yàn)槲覀冃枰ㄟ^(guò)電子郵件地址向訂閱者發(fā)送內(nèi)容。
  2. 姓名:雖然這不是強(qiáng)制性的,但我們希望收集一個(gè)名字,以便在電子郵件中個(gè)性化問(wèn)候(例如,“您好 {{subscriber.name}}!”)。這有助于增加郵件的親和力和互動(dòng)性。

為什么收集這些信息?

  • 電子郵件地址:這是發(fā)送消息的唯一標(biāo)識(shí)符。
  • 姓名:用于個(gè)性化郵件,使訂閱者感到更親切。我們不強(qiáng)制要求真實(shí)姓名,允許用戶使用任何他們喜歡的標(biāo)識(shí)符(例如,coderLZ)。

表單提交的編碼方式

假設(shè)數(shù)據(jù)是通過(guò)HTML表單收集的,并通過(guò)POST請(qǐng)求傳遞給后端API,表單數(shù)據(jù)的編碼方式可以選擇?application/x-www-form-urlencoded。這是最常見(jiàn)的表單數(shù)據(jù)編碼方式,適用于大多數(shù)簡(jiǎn)單的表單提交場(chǎng)景。

示例HTML表單

<form action="/subscribe" method="post"><label for="email">電子郵件地址:</label><input type="email" id="email" name="email" required><label for="name">姓名 (可選):</label><input type="text" id="name" name="name"><button type="submit">訂閱</button>
</form>

后端API接收的數(shù)據(jù)格式

當(dāng)表單提交時(shí),數(shù)據(jù)將以?application/x-www-form-urlencoded?格式編碼,并通過(guò)POST請(qǐng)求的請(qǐng)求體(body)傳遞給后端API,比如

email=example%40example.com&name=DenverCoder9

通常在URL編碼中使用%20替換空格,%40替換@符號(hào),以確保URL的標(biāo)準(zhǔn)化、兼容性和安全性。通過(guò)URL編碼,可以確保各種字符在URL中正確傳輸和解析。

將需求轉(zhuǎn)化為測(cè)試用例,在實(shí)際開(kāi)發(fā)過(guò)程中也是如此,測(cè)試先行

測(cè)試用例

  1. 驗(yàn)證電子郵件地址的有效性
    1. 描述:確保用戶提供的電子郵件地址是有效的。
    2. 測(cè)試用例:
      1. 輸入:email=example@example.com
      2. 期望輸出:訂閱成功。
      3. 輸入:email=invalidemail
      4. 期望輸出:顯示錯(cuò)誤消息,提示電子郵件格式無(wú)效。
  2. 驗(yàn)證姓名字段的靈活性
    1. 描述:確保用戶可以使用任何形式的姓名,包括空值。
    2. 測(cè)試用例:
      1. 輸入:email=example@example.com&name=John Doe
      2. 期望輸出:訂閱成功。
      3. 輸入:email=example@example.com&name=DenverCoder9
      4. 期望輸出:訂閱成功。
      5. 輸入:email=example@example.com&name=
      6. 期望輸出:訂閱成功,姓名字段為空。
  3. 驗(yàn)證表單提交的編碼方式
    1. 描述:確保表單數(shù)據(jù)以 application/x-www-form-urlencoded 格式正確編碼。
    2. 測(cè)試用例:
    3. 輸入:email=example%40example.com&name=John%20Doe
    4. 期望輸出:訂閱成功,電子郵件地址和姓名正確解析。
  4. 驗(yàn)證重復(fù)訂閱
    1. 描述:確保同一電子郵件地址不能多次訂閱。
    2. 測(cè)試用例:
      1. 輸入:第一次訂閱?email=example@example.com&name=John Doe
      2. 期望輸出:訂閱成功。
      3. 輸入:第二次訂閱?email=example@example.com&name=John Doe
      4. 期望輸出:顯示錯(cuò)誤消息,提示該電子郵件地址已訂閱。
  5. 驗(yàn)證錯(cuò)誤處理
    1. 描述:確保系統(tǒng)能夠正確處理各種錯(cuò)誤情況。
    2. 測(cè)試用例:
      1. 輸入:email=example@example.com&name=
      2. 期望輸出:訂閱成功,姓名字段為空。
      3. 輸入:email=&name=John Doe
      4. 期望輸出:顯示錯(cuò)誤消息,提示電子郵件地址不能為空。
      5. 輸入:email=example@example.com&name=<>
      6. 期望輸出:顯示錯(cuò)誤消息,提示姓名字段包含非法字符。

編寫(xiě)測(cè)試用例代碼

本文結(jié)合表驅(qū)動(dòng)測(cè)試(Table-Driven Testing)方法,它通過(guò)使用一個(gè)數(shù)據(jù)表來(lái)組織測(cè)試用例。每個(gè)測(cè)試用例通常包含輸入數(shù)據(jù)、預(yù)期輸出結(jié)果以及可能的其他信息,如測(cè)試描述或標(biāo)簽。這種方法使得測(cè)試代碼更加簡(jiǎn)潔、易于理解和維護(hù),同時(shí)也方便擴(kuò)展新的測(cè)試用例。

表驅(qū)動(dòng)測(cè)試的優(yōu)勢(shì)

  1. 代碼簡(jiǎn)潔:通過(guò)將測(cè)試用例組織成表格形式,可以避免大量的重復(fù)代碼,使測(cè)試邏輯更加清晰。
  2. 易于維護(hù):當(dāng)需要添加新的測(cè)試用例或修改現(xiàn)有測(cè)試用例時(shí),只需更新表格中的數(shù)據(jù),而不需要改動(dòng)測(cè)試邏輯。
  3. 便于擴(kuò)展:可以輕松地向表格中添加新的行,以涵蓋更多的測(cè)試場(chǎng)景。
  4. 更好的可讀性:將測(cè)試用例組織成表格形式,使得測(cè)試意圖更加明確,更容易理解。
///! src/health_check.rs
#[tokio::test]
async fn subscribe_returns_a_200_for_valid_form_data() {let app_address = spawn_app();let client = reqwest::Client::new();let body = "name=le%20guin&email=ursula_le_guin%40gmail.com";let response = client.post(&format!("{}/subscriptions", &app_address)).header("Content-Type", "application/x-www-form-urlencoded").body(body).send().await.expect("Failed to execute request .");//此處我們希望返回200,但是很明顯/subscriptions路徑根本不存在,應(yīng)該返回404assert_eq!(200, response.status().as_u16());
}#[tokio::test]
async fn subscribe_returns_a_400_when_data_is_missing() {let app_address = spawn_app();let client = reqwest::Client::new();
///```test_cases:定義了一個(gè)包含多個(gè)測(cè)試用例的向量。每個(gè)測(cè)試用例是一個(gè)元組,包含兩個(gè)字符串:
///   invalid_body:無(wú)效的請(qǐng)求體,用于模擬缺少某些必要字段的情況。
///```error_message:描述該測(cè)試用例的錯(cuò)誤信息,用于在斷言失敗時(shí)提供更詳細(xì)的錯(cuò)誤信息。let test_cases = vec![("name=le%20guin", "missing the email"),("email=ursula_le_guin%40gmail.com", "missing the name"),("", "missing both name and email"),];for (invalid_body, error_message) in test_cases {let response = client.post(&format!("{}/subscriptions", &app_address)).header("Content-Type", "application/x-www-form-urlencoded").body(invalid_body).send().await.expect("Failed to execute request.");assert_eq!(400,response.status().as_u16(),"The API did not fail with 400 bad Request when the payload was {}.",error_message);}
}

這段代碼通過(guò)表驅(qū)動(dòng)測(cè)試的方法,驗(yàn)證了一個(gè) HTTP API 在接收到缺少必要數(shù)據(jù)的請(qǐng)求時(shí)是否會(huì)正確返回 400 Bad Request 狀態(tài)碼。每個(gè)測(cè)試用例都包含一個(gè)無(wú)效的請(qǐng)求體和一個(gè)描述性的錯(cuò)誤信息,以便在斷言失敗時(shí)提供詳細(xì)的錯(cuò)誤提示。雖然并沒(méi)有覆蓋到所有的測(cè)試用例,但是這種測(cè)試方法不僅提高了代碼的可讀性和可維護(hù)性,還確保了 API 的健壯性。

下一節(jié)我們將開(kāi)始實(shí)現(xiàn)/subscriptions 功能

http://www.risenshineclean.com/news/942.html

相關(guān)文章:

  • wordpress頁(yè)面的排序長(zhǎng)沙百家號(hào)seo
  • 江陰 網(wǎng)站開(kāi)發(fā)新東方烹飪學(xué)校學(xué)費(fèi)價(jià)目表
  • 旅游網(wǎng)站建設(shè)內(nèi)容網(wǎng)站搜索排名優(yōu)化怎么做
  • 網(wǎng)站開(kāi)發(fā)中的網(wǎng)頁(yè)上傳和網(wǎng)站發(fā)布網(wǎng)站點(diǎn)擊量與排名
  • 公司做網(wǎng)站的費(fèi)用如何記賬軟文文案范文
  • iapp怎么把網(wǎng)站做軟件網(wǎng)站推廣計(jì)劃書(shū)范文500字
  • 設(shè)計(jì)建設(shè)網(wǎng)站搜索排名怎么做
  • 化妝品網(wǎng)站開(kāi)發(fā)流程和進(jìn)度安排網(wǎng)絡(luò)營(yíng)銷模式有哪些
  • 新余做網(wǎng)站沈陽(yáng)網(wǎng)絡(luò)營(yíng)銷推廣的公司
  • 怎么用java 做網(wǎng)站互聯(lián)網(wǎng)推廣怎么找渠道
  • 如何做網(wǎng)站與網(wǎng)頁(yè)微信營(yíng)銷軟件
  • 陜西省建設(shè)監(jiān)理協(xié)會(huì)證書(shū)查詢網(wǎng)站寧波網(wǎng)站推廣怎么做
  • 管理咨詢公司稅收優(yōu)惠青島seo優(yōu)化
  • 鎮(zhèn)江網(wǎng)站推廣南寧seo外包要求
  • 網(wǎng)站有了訂單郵箱提醒代碼營(yíng)銷策略模板
  • 這么做國(guó)外網(wǎng)站的國(guó)內(nèi)鏡像站甘肅搜索引擎網(wǎng)絡(luò)優(yōu)化
  • 西安網(wǎng)絡(luò)公司網(wǎng)站建設(shè)小紅書(shū)推廣平臺(tái)
  • 網(wǎng)站開(kāi)發(fā)基于什么平臺(tái)自己代理一款手游需要多少錢(qián)
  • go語(yǔ)言怎么搭建網(wǎng)頁(yè)東莞網(wǎng)站優(yōu)化關(guān)鍵詞排名
  • 用jsp做網(wǎng)站的難點(diǎn)云優(yōu)化
  • index.html網(wǎng)站怎么做重慶seo優(yōu)化公司
  • 免費(fèi)下載建設(shè)銀行官方網(wǎng)站濟(jì)南優(yōu)化網(wǎng)站的哪家好
  • 岳陽(yáng)網(wǎng)站開(kāi)發(fā)商城網(wǎng)絡(luò)推廣項(xiàng)目計(jì)劃書(shū)
  • 校園網(wǎng)站建設(shè)模板上海網(wǎng)站排名seo公司哪家好
  • 做網(wǎng)站賭博代理違法嗎品牌推廣是做什么的
  • 做營(yíng)銷網(wǎng)站制作seo綜合查詢是什么意思
  • 企業(yè)網(wǎng)站怎么做畢業(yè)設(shè)計(jì)網(wǎng)站怎么營(yíng)銷推廣
  • b2b平臺(tái)有哪些類別網(wǎng)絡(luò)營(yíng)銷優(yōu)化
  • 做免費(fèi)網(wǎng)站教程國(guó)vs百度seo排名優(yōu)化軟件化
  • 萊蕪二手房網(wǎng)湖南seo優(yōu)化報(bào)價(jià)