在创建项目时勾选 Include Tests选项,如下图所示:
创建项目乐成后,项目目次下即可看到对应的单元测试文件夹。先忽略ZJHUnitTestDemoUITests,它属于UI测试,其他文章会有更多先容,本文重要讲ZJHUnitTestDemoTests文件
2.1.2、项目创建后添加
如果之前的项目还没有添加单元测试target,也可以按照下图方式进行新建:
2.2、单元测试类先容
在新建的测试文件代码如下所示,体系主动天生了几个方法:
#import <XCTest/XCTest.h>// 全部的测试类必要继承 XCTestCase@interface ZJHUnitTestDemoTests : XCTestCase@end@implementation ZJHUnitTestDemoTests/// 在每一个测试方法调用前,都会被调用;用来初始化 test 用例的一些初始值- (void)setUp { // Put setup code here. This method is called before the invocation of each test method in the class. // 在这里设置代码。在调用类中的每个测试方法之前调用此方法。}/// 在每一个测试方法调用后,都会被调用;用来重置 test 方法的数值- (void)tearDown { // Put teardown code here. This method is called after the invocation of each test method in the class. // 在这里输入删除代码。在调用类中的每个测试方法之后调用此方法。}/// 测试方法定名以 test 开始- (void)testExample { // This is an example of a functional test case. // Use XCTAssert and related functions to verify your tests produce the correct results. // 这是一个功能测试用例。 // 利用XCTAssert和相干函数来验证您的测试产生精确的效果。}/// 性能测试- (void)testPerformanceExample { // This is an example of a performance test case. // 这是一个性能测试用例。 [self measureBlock:^{ // Put the code you want to measure the time of here. // 把你想要丈量时间的代码放在这里。 }];}@endsetUp方法:setUp方法会在XCTestCase的测试方法每次调用之前调用,以是可以把一些测试代码必要用的初始化代码和全局变量写在这个方法里; tearDown:在每个单元测试方法实行完毕后,XCTest会实行tearDown方法,以是可以把必要测试完成后烧毁的内容写在这个里,以便包管下面的测试不受本次测试影响 测试用例:全部测试的方法都必要以test为前缀进行定名,比如- (void)testExample,- (void)testPerformanceExample
2.3、新建示例
全部的性能测试必要设置一个Baseline来验证是否通过测试,没有设置的会提示No baseline average for Time。点击左边灰色菱形图标可检察性能测试效果。
在性能测试效果图里可以看到匀称时间(总时长/10),尚有10个柱状图,这个意思是在这个测试方法运行总时长被分为10份,蓝色柱子表现每份的耗时,中央的横线表现匀称时间,点击数字可检察每份中的匀称时长。