2018笔记——单元测试

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

第一步:

创建项目时勾选(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

很好很强大,加油~~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容