[Swift通天遁地]7、數據與安全-(14)使用單元測試進行郵箱格式的驗證

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-acwebbhc-mb.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftgit

本文將演示使用單元測試進行郵箱格式的驗證。github

若是項目中沒有引用單元格測試框架,正則表達式

項目導航區點擊選中項目名稱,再點擊中間列的【+】圖標進行添加。swift

在彈出的模板窗口中,選擇單元測試框架模板【iOS Unit Testing Bundle】安全

->【Next】->保持默認的選項設置->【Finish】微信

如今建立一個基於正則表達式的驗證類。框架

在項目文件夾【DemoApp】上點擊鼠標右鍵,彈出右鍵菜單。post

【New File】->【Swift File】->【Next】->單元測試

【Save As】:EmailUtil.swift->【Create】

 1 import UIKit
 2 
 3 //爲了使用正則表達式對字符串進行檢測,
 4 //添加一個用於正則表達式檢測的結構體。
 5 struct RegexHelper
 6 {
 7     //此處使用Object-C正則表達式的類,進行表達式的檢測。
 8     let regex: NSRegularExpression?
 9     
10     //對結構體進行初始化,並傳入一個字符串參數,用於檢驗郵箱格式的正則表達式。
11     init(_ pattern: String)
12     {
13         //添加一個異常捕捉語句,用來執行正則表達式的匹配工做。
14         do
15         {
16             //建立一個正則表達式,而且在檢驗格式時,不對大小寫進行區分。
17             regex = try NSRegularExpression(pattern: pattern,
18                                             options: NSRegularExpression.Options.caseInsensitive)
19         }
20         catch
21         {
22             regex = nil
23         }
24     }
25     
26     //建立一個方法,用來執行正則表達式的檢測工做,而且返回一個布爾結果。
27     func match(_ input: String) -> Bool
28     {
29         //對字符串進行正則表達式的檢測,
30         //而且得到匹配的對象在字符串中的範圍。
31         if let matches = regex?.matches(in: input, 
32                                         options: .reportProgress,
33                                         range: NSMakeRange(0, input.lengthOfBytes(using: .utf8)))
34         {
35             //判斷匹配正則表達式的位置,是否大於0,
36             //以判斷字符串與正則表達式是否匹配。
37             //若是字符串不匹配正則表達式,則返回否。
38             return matches.count > 0
39         }
40         else
41         {
42             return false
43         }
44     }
45 }
46 
47 //添加一個驗證郵箱格式的類
48 class EmailUtil
49 {
50     //添加一個方法,擁有一個字符串類型的參數,用來檢測字符串。
51     func validateEmail(email:String) -> Bool
52     {
53         //經過正則表達式對該參數進行檢測,
54         //建立一個用於檢測郵箱格式的正則表達式字符串。
55         let pattern = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"
56         //建立一個用於正則檢驗的結構體對象。
57         let matcher = RegexHelper(pattern)
58         
59         //使用結構體的匹配方法,對字符串進行正則校驗。
60         if matcher.match(email)
61         {
62             //若是屬於正確的郵箱格式則返回真。
63             return true
64         }
65         //返回檢測的結果
66         return false
67     }
68 }

點擊各剛建立的文件夾【UnitTestProject_DemoTests】,

顯示文件夾下的全部項目,建立一個單元測試類文件。

【New File】->【Cocoa Touch Class】->【Next】->

【Class】:EmailTester

【Subclass of】:XCTestCase

【Language】:Swift

->【Next】->【Create】

如今開始編寫代碼,建立一個自定義的測試用例。

 1 //引入單元測試類庫
 2 import XCTest
 3 //引入另外一個目標中的類,
 4 //這樣能夠在當前的類文件中,使用另外一個目標的類文件。
 5 @testable import UnitTestProject_ValidateEmail
 6 
 7 class EmailTester: XCTestCase {
 8     
 9     //添加一個測試用例
10     //點擊方法名稱左側的菱形圖標,執行該測試用例。
11     func testEmail()
12     {
13         //初始化一個郵箱格式驗證的實例
14         let emailUtil = EmailUtil()
15         //調用實例的驗證方法,判斷指定的郵箱格式是否正確。
16         let result = emailUtil.validateEmail(email: "newsagency@163.com")
17         //在方法的末尾,經過一個斷言,檢測執行正則校驗後的結果。
18         XCTAssert(result, "E-mail is incorrect.")
19         //最後點擊testEmail()方法名稱左側的菱形圖標,執行該測試用例
20     }
21 }
相關文章
相關標籤/搜索