单元测试注意事项:
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