IOS开发测试之单元测试一

来源:互联网 发布:黑色沙漠男法捏脸数据 编辑:程序博客网 时间:2024/06/03 21:34

从事IOS开发有一段时间了,但是说到IOS的测试自己确实知道的很少,作为一名开发人员,虽然没有必要把主要精力花费在测试上,但是了解一些测试的知识对自己开发过程中调试bug,解决问题还是有很大的帮助的,能够帮助大家节省大量的时间。以前在网上搜过关于ios测试方面的书,但是国内好像没有,前一段时间又搜了一下发现有一本《IOS测试指南》这本书感觉挺不错的就买了一本,觉得挺好的给大家推荐一下,电子书下载地址 。 当然了还是希望大家能够购买哦,对作者表示支持。

接下来的日子里我会跟着书中的内容进行学习,同时将自己的心得体会写下来,另外也对书中作者提供的代码进行验证一下。
下面就来说下GHUnit这个单元测试 资源下载地址 下面我按照书上所写的步骤进行配置一下看看是否可以。
由于我使用的xcode的版本是6.4,比书中使用的Xcode版本有很大不同,就是创建target是不能选择是否生成test。可能有一些操作和书上的不太一样,但是效果是一样的。
在GHUnitTestDemo这个项目中新建一个target,并将这个target命名为test,然后在这个target所在地项目中导入GHUnitIOS.framework,然后对test进行设置,如下图所示
这里写图片描述
设置完以后要对test这个target里面的main进行设置,是test这个target启动的时候从按照GHUnitIOS.framework里面的方法进行启动,方便我们进行测试。
具体的代码如下:
main.m

////  main.m//  tests////  Created by Jack on 15/9/18.//  Copyright (c) 2015年 Jack. All rights reserved.//#import <UIKit/UIKit.h>//#import "AppDelegate.h"#import <GHUnitIOS/GHUnit.h>int main(int argc, char * argv[]) {    @autoreleasepool {        return UIApplicationMain(argc, argv, nil, NSStringFromClass([GHUnitIOSAppDelegate class]));    }}

下面我们来新建一个测试用例,命名为test ,如下图所示:
这里写图片描述
一定要看清楚哦,这里的文件类型是Cocoa Touch Class,而不是test case class。
这里写图片描述
自定义的测试样例继承自CHTestCase.
哈哈,大功告成,下面我们来写一段测试代码来比较两个字符串是否相等。

-(void)testStrings{NSString *string1 = @"I'm Jack";    GHTestLog(@"I can log to the GHUnit test console: %@",string1);    NSString *string2 = @"I'm Jack";    GHAssertEqualObjects(string1, string2, @"A custom error mesage.string1 should be equal to %@",string2);}

函数的名字要以小写的test开头哦,不然这个函数不会被发现并运行的。运行结果如下:
这里写图片描述
这里写图片描述

打印结果出来了,说明两个字符串是相等的。
我们把字符串调整一下看看运行结果:

-(void)testStrings{NSString *string1 = @"I'm Jack";    GHTestLog(@"I can log to the GHUnit test console: %@",string1);    NSString *string2 = @"I'm Lucas";    GHAssertEqualObjects(string1, string2, @"A custom error mesage.string1 should be equal to %@",string2);}

这里写图片描述
可以看到错误报文,提示内容并不相同。

demo如下:
下载地址

1 0
原创粉丝点击