Swift学习

Swift UnitTest和UITest

2019-02-14  本文已影响21人  xmb

测试

测试包含两种:UnitTest和 UITest

创建测试

创建项目时,可选择是否创建测试,也可后期添加测试。

  1. 创建项目时添加


    WX20190214-171646@2x.png
  2. 项目创建后添加
    File - New - Target,可选择创建对应测试。


    WX20190214-172201@2x.png

    分别创建:

使用测试

MyTestDemoTests.swift文件中自动生成了一些内容。


WX20190214-172917@2x.png

也可以在左侧导航栏里运行对应的函数:


WX20190215-154238@2x.png
  1. @testable import MyTestDemo表示要测试MyTestDemo这个模块
  2. setUp在测试之前做一些初始化、数据库装载等操作
  3. tearDown测试结束之后执行一些操作、清除掉数据
  4. testExample书写测试用例
  5. testPerformanceExample书写测试性能用例
  1. testExampletestPerformanceExample或者自己编写的测试函数,可以单独运行,也可以运行整个测试class里所有测试。
  2. 可测试的方法命名固定为test开头。
  3. 快捷方式:Command + U
  4. 每一个test函数运行,都会执行一次setUptearDown
单元测试的所有方法
XCTFail(format…) 生成一个失败的测试;

XCTAssertNil(a1, format...)为空判断,a1为空时通过,反之不通过;

XCTAssertNotNil(a1, format…)不为空判断,a1不为空时通过,反之不通过;

XCTAssert(expression, format...)当expression求值为TRUE时通过;

XCTAssertTrue(expression, format...)当expression求值为TRUE时通过;

XCTAssertFalse(expression, format...)当expression求值为False时通过;

XCTAssertEqualObjects(a1, a2, format...)判断相等,[a1 isEqual:a2]值为TRUE时通过,其中一个不为空时,不通过;

XCTAssertNotEqualObjects(a1, a2, format...)判断不等,[a1 isEqual:a2]值为False时通过;

XCTAssertEqual(a1, a2, format...)判断相等(当a1和a2是 C语言标量、结构体或联合体时使用, 判断的是变量的地址,如果地址相同则返回TRUE,否则返回NO);

XCTAssertNotEqual(a1, a2, format...)判断不等(当a1和a2是 C语言标量、结构体或联合体时使用);

XCTAssertEqualWithAccuracy(a1, a2, accuracy, format...)判断相等,(double或float类型)提供一个误差范围,当在误差范围(+/-accuracy)以内相等时通过测试;

XCTAssertNotEqualWithAccuracy(a1, a2, accuracy, format...) 判断不等,(double或float类型)提供一个误差范围,当在误差范围以内不等时通过测试;

XCTAssertThrows(expression, format...)异常测试,当expression发生异常时通过;反之不通过;(很变态) XCTAssertThrowsSpecific(expression, specificException, format...) 异常测试,当expression发生specificException异常时通过;反之发生其他异常或不发生异常均不通过;

XCTAssertThrowsSpecificNamed(expression, specificException, exception_name, format...)异常测试,当expression发生具体异常、具体异常名称的异常时通过测试,反之不通过;

XCTAssertNoThrow(expression, format…)异常测试,当expression没有发生异常时通过测试;

XCTAssertNoThrowSpecific(expression, specificException, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过;

XCTAssertNoThrowSpecificNamed(expression, specificException, exception_name, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过
性能测试

可以看到消耗的时间,CPU消耗,和上次运行对比等。


WX20190215-160104@2x.png
上一篇下一篇

猜你喜欢

热点阅读