单元测试注意事项:
1.测试类必须是XCTestCase的子类,可使用项目自动生成的,也可自己新建一个测试类,用于测试某个特定的被测试的类
2.导入被测试的类.如MathTool
3.新建测试方法,必须以test开头,对象方法,且无返回值,无参数
4.在测试方法中,根据具体情况,使用XCTAssert...方法对被测试类内部的要测试的方法进行断言
5.无需运行程序,直接点击方法左边的圆形按钮,就可执行测试方法
新建一个测试方法
点击测试方法左边的三角形按钮,开始测试
测试结果为红色,原因是工具类还没实现方法
再次点击方法左侧的三角形按钮,执行测试
修正工具类的方法后,再次执行测试,结果为绿色
创建自定义测试类
点击测试方法,左侧的执行按钮,开始测试
红色表示 测试出错
绿色表示测试正确
// // _0_____Tests.m // 30_单元测试Tests // // Created by beyond on 14-9-5. // Copyright (c) 2014年 com.beyond. All rights reserved. // 只要继承自 XCTestCase,本类就具备了单元测试的功能 #import <XCTest/XCTest.h> // 1.先导入要测试的类 #import "MathTool.h" @interface _0_____Tests : XCTestCase @end @implementation _0_____Tests - (void)setUp { [super setUp]; // 本类中每一个测试方法 开始之前,都会运行 该setUp方法 } - (void)tearDown { // 本类中每一个测试方法 结束之前,都会运行 该tearDown方法 [super tearDown]; } // 测试方法,必须以textXxx开头,且是对象方法,且无返回值,且无参数 - (void)testSum { XCTAssertEqual(13, [MathTool sumWithA:6 andB:7], @"求和方法有错~"); } - (void)testExample { XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); } @end
// // GirlTest.m // 30_单元测试 // // Created by beyond on 14-9-5. // Copyright (c) 2014年 com.beyond. All rights reserved. // 自定义单元测试类,只要继承自 XCTestCase,本类就具备了单元测试的功能 #import <XCTest/XCTest.h> // 专门测试 GirlFactory 里面的方法 #import "GirlFactory.h" @interface GirlTest : XCTestCase @end @implementation GirlTest - (void)setUp { [super setUp]; // 本类中每一个测试方法 开始之前,都会运行 该setUp方法 } - (void)tearDown { // 本类中每一个测试方法 结束之前,都会运行 该tearDown方法 [super tearDown]; } // 测试方法,必须以textXxx开头,且是对象方法,且无返回值,且无参数 - (void)testGirlFactory { XCTAssertNotNil([GirlFactory girl], @"女朋友工厂出错,无法生产女朋友了~"); } - (void)testExample { XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); } @end
如果删除项目中的测试Target,可以新建一个Target
File-->new Target-->Other-->Cocoa Touch Unit Testing Bundle