美文网首页2018技术笔记
2018笔记——单元测试

2018笔记——单元测试

作者: 满庭花醉三千客 | 来源:发表于2018-07-28 10:57 被阅读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

    很好很强大,加油~~

    相关文章

      网友评论

        本文标题:2018笔记——单元测试

        本文链接:https://www.haomeiwen.com/subject/fsfomftx.html