Swift UnitTest和UITest
2019-02-14 本文已影响21人
xmb
测试
测试包含两种:UnitTest和 UITest
创建测试
创建项目时,可选择是否创建测试,也可后期添加测试。
-
创建项目时添加
WX20190214-171646@2x.png -
项目创建后添加
File - New - Target,可选择创建对应测试。
WX20190214-172201@2x.png
分别创建:
-
单元测试
WX20190214-172253@2x.png -
UI测试
WX20190214-172331@2x.png
使用测试
MyTestDemoTests.swift文件中自动生成了一些内容。
WX20190214-172917@2x.png
也可以在左侧导航栏里运行对应的函数:
WX20190215-154238@2x.png
-
@testable import MyTestDemo
表示要测试MyTestDemo这个模块 -
setUp
在测试之前做一些初始化、数据库装载等操作 -
tearDown
测试结束之后执行一些操作、清除掉数据 -
testExample
书写测试用例 -
testPerformanceExample
书写测试性能用例
testExample
和testPerformanceExample
或者自己编写的测试函数,可以单独运行,也可以运行整个测试class里所有测试。- 可测试的方法命名固定为test开头。
- 快捷方式:
Command + U
- 每一个test函数运行,都会执行一次
setUp
和tearDown
单元测试的所有方法
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