首页 > 代码库 > iOS_30_单元测试

iOS_30_单元测试

单元测试注意事项:

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





iOS_30_单元测试