2018技术笔记

2018笔记——单元测试

2018-07-28  本文已影响8人  满庭花醉三千客

之前对单元测试没什么概念,今天研究之,发现用途广泛啊。

第一步:

创建项目时勾选(Include Unit Tests, Include UI Tests)这两项。

屏幕快照 2018-03-02 下午4.53.06.png

如果没有勾选,那也没关系,项目内可以添加,File-New-Target

屏幕快照 2018-03-02 下午1.44.13.png

然后添加Test栏中的两项即可:

屏幕快照 2018-03-02 下午1.43.42.png

第二步:

创建测试文件,Command N,选择Unit Test Case Class

屏幕快照 2018-03-02 上午9.12.25.png

然后创建一个XCTestCase的对象

屏幕快照 2018-03-02 上午9.09.19.png

我们新建一个文件,继承于NSObject的PersonModel:

#import <Foundation/Foundation.h>

@interface PersonModel : NSObject

/**

*  用户名

**/

@property (nonatomic, copy) NSString *userName;

/**

*  年龄

**/

@property (nonatomic, assign) NSInteger age;

/**

*  性别 0girl  1boy

**/

@property (nonatomic, assign) NSInteger sexCode;

- (BOOL)isGoodStudent;

@end

一个isGoodStudent方法,判断用户名长度大于0,年龄大于3,小于100,性别为1.

接下来前往MyTest.m中编写测试方法(需要以test开头):

屏幕快照 2018-03-02 下午4.49.31.png

点击方法前面的勾号即可编译,如果想对所有的测试方法编译,command U即可。

还有其他断言:

- (void)testDifferentAssert//(全部通过的测试)

{

    BOOL isFaile = NO;

    if (isFaile) {

        XCTFail("生成失败的测试");//生成一个失败的测试

    }

    NSString *nilString = nil;

    XCTAssertNil(nilString,"空对象,才能通过测试");

    NSString *notNilString = @"123";

    XCTAssertNotNil(notNilString,"非空对象,才能通过测试");

    BOOL oneBool = YES;

    XCTAssert(oneBool,"结果为true,才能通过测试");

    BOOL twoBool = YES;

    XCTAssertTrue(twoBool,"结果为true,才能通过测试");

    BOOL threeBool = NO;

    XCTAssertFalse(threeBool,"结果为false,才能通过测试");

    NSArray *arrOne = [NSArray arrayWithObjects:@"123", nil];

    NSArray *arrTwo = arrOne;

    XCTAssertEqual(arrOne, arrTwo,"二者相同,才能通过测试");

    NSString *oneString = @"aaa";

    NSString *twoString = @"aaabbb";

    XCTAssertNotEqual(oneString, twoString,"二者不相同,才能通过测试");

    CGFloat aValue = 5;

    CGFloat bValue = 6;

    XCTAssertEqualWithAccuracy(aValue, bValue, 10,"二者差值在10(accuracy)内,才能通过测试");

    CGFloat cValue = 5;

    CGFloat dValue = 100;

    XCTAssertNotEqualWithAccuracy(cValue, dValue, 10,"二者误差不在10(accuracy)内,才能通过测试");

    NSArray *arrThree = @[@"111"];

    XCTAssertThrows([arrThree objectAtIndex:10],"发生异常时,才能通过测试");

    NSMutableArray *arrFour = [NSMutableArray array];

    XCTAssertNoThrow([arrFour addObject:@"ssd"],"无异常,才能通过测试");

}

部分未通过的效果:


屏幕快照 2018-03-02 下午4.44.59.png 屏幕快照 2018-03-02 下午4.45.28.png

很好很强大,加油~~

上一篇 下一篇

猜你喜欢

热点阅读