• [Swift通天遁地]七、数据与安全-(14)使用单元测试进行邮箱格式的验证


    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/10341471.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    目录:[Swift]通天遁地Swift

    本文将演示使用单元测试进行邮箱格式的验证。

    如果项目中没有引用单元格测试框架,

    项目导航区点击选中项目名称,再点击中间列的【+】图标进行添加。

    在弹出的模板窗口中,选择单元测试框架模板【iOS Unit Testing Bundle】

    ->【Next】->保持默认的选项设置->【Finish】

    现在创建一个基于正则表达式的验证类。

    在项目文件夹【DemoApp】上点击鼠标右键,弹出右键菜单。

    【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 }
  • 相关阅读:
    SZU:B47 Big Integer II
    Plan : 破晓
    C程序设计语言(第二版)习题:第二章
    Linux : fedora 安装 vnc server
    Linux系统编程:客户端-服务器用FIFO进行通信
    Linux系统编程:dup2()重定向
    Vijos: P1046观光旅游
    FLOYD 求最小环
    uva 401.Palindromes
    codeforces Educational Codeforces Round 5 A. Comparing Two Long Integers
  • 原文地址:https://www.cnblogs.com/strengthen/p/10341471.html
Copyright © 2020-2023  润新知