xcode 5 使用 XCTest 做单元测试

什么是单元测试,请看 百度百科 单元测试

一:在xcode5 之前,我们新建项目时,可以选择是否集成单元测试;如今在xcode5,我们新建立的项目默认就已经集成了单元测试和ARC;

xcode5 之后集成的单元测试框架 XCTest.framework

如图,我们用xcode5 新建立一个 名为 StudengManager 的空项目

  • 项目新增加框架 XCTest.framework
  • 项目新增加组 XXXX项目名Test组
  • 新增加 xxxxxTest.m
  • Test.m测试文件没有 .h文件,并且 继承 XCTestCase 类;

项目新建立好之后,我可以用 快捷键 com + u (或是 导航条 --> product --> test) 来启动测试;

如图:出错了,那是默认的,需要开发者 自己实现 相应的 - (void)test开关的方法;

二:有兴趣的可以打开 XCTest.framework 先看一下该框架为我们提供的测试用的api;

如下一些基本的api的使用;

1:如图,我们在项目里添加一个Student类,里面包含 姓名,年龄、是否是男孩 三个属性

2:把 Studen引入到 Test.m文件中使用;

- (void)testExample
{
//创建两个学生对象,并初始化一些属性;
Student *stu1 = [Student new];
Student *stu2 = [Student new]; stu1.name = @"Mike";
stu1.age = ;
stu1.isBoy = YES; stu2.name = @"Lisa";
stu2.age = ;
stu2.isBoy = NO; //测试 是否为 nil
Student *stu3 = [Student new];
stu3.isBoy = YES;
//当姓名为nil时,错误会提示,并显示后面的log
XCTAssertNotNil(stu3.name, @"学生3的姓名不应该为空"); }

这里:

3:XCTAssertTrue和XCTAssertFalse

4:XCTAssertEqual使用

5:你可以建立自己的测试类 ,但要继承 XCTestCase; 并且里面测试方法要是 - (void)test 且以 test开头的;当没有错误 的时候,就会全部变成绿色;

控制台会打印信息:

6:还有关于 TDD 测试驱动开发,请谷歌之!

xcode 5 使用 XCTest 做单元测试的更多相关文章

  1. Xcode 5 单元测试(一)使用XCTest进行单元测试

    在Objc.io #1的Testing View Controllers中讲解的就是单元测试的相关内容.本文说下如何通过Xcode 5中集成的XCTest框架进行简单的单元测试. 什么是单元测试 首先 ...

  2. 在XCode中使用XCTest

    测试驱动开发并不是一个很新鲜的概念了.在我最开始学习程序编写时,最喜欢干的事情就是编写一段代码,然后运行观察结果是否正确.我所学习第一门语言是c语言,用的最多的是在算法设计上,那时候最常做的事情就是编 ...

  3. 【转】使用XCODE 的SOURCE CONTROL 做版本控制 (1)

    原文网址:http://it.zhaozhao.info/archives/60469 有一次笔者在开心项目准备尝试新的练习的时候,赫然注意到在选择档案存放位置的时候,下面有个Source Contr ...

  4. spring junit 做单元测试,报 Failed to load ApplicationContext 错误

    spring junit 做单元测试,报 Failed to load ApplicationContext 错误. 查找了好一会,最后发现.@ContextConfiguration(locatio ...

  5. 使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹

    使用Jython对Java做单元测试,当然,为了测试开发java代码.这涉及到引入第三包的问题,如何导入第三方的包? 您可以使用http://blog.csdn.net/powerccna/artic ...

  6. 使用karma+jasmine做单元测试

    目的 使用karma和jasmine来配置自动化的js单元测试. Karma和Jasmine Karma是由Angular团队所开发的一种自动化测试工具.链接:http://karma-runner. ...

  7. 使用MS Test做单元测试

    声明:本篇博客翻译自:http://www.c-sharpcorner.com/article/unit-testing-with-ms-tests-in-c-sharp/ 写在翻译之前: 依然清晰的 ...

  8. 持续集成之单元测试篇——WWH(讲讲我们做单元测试的故事)

    持续集成之单元测试篇--WWH(讲讲我们做单元测试的故事) 前言 临近上线的几天内非重大bug不敢进行发版修复,担心引起其它问题(摁下葫芦浮起瓢) 尽管我们如此小心,仍不能避免修改一些bug而引起更多 ...

  9. Web项目如何做单元测试

    你可能会用单元测试框架,python的unittest.pytest,Java的Junit.testNG等. 那么你会做单元测试么!当然了,这有什么难的? test_demo.py def inc(x ...

随机推荐

  1. ironic简介

    转:https://doodu.gitbooks.io/openstack-ironic 简介 Bare Metal Servcie 裸机服务 -- 'bear betal' ironic简介 如今O ...

  2. luogu P1919 【模板】A*B Problem升级版(FFT快速傅里叶)

    模板 嗯 做多项式乘法,进位 没了 #include<cmath> #include<cstdio> #include<cstring> #include<a ...

  3. luoguP3255 [JLOI2013]地形生成 动态规划

    出题人语文真好... 各不相同的标号和高度 = 各不相同的标号 + 单独的高度... 第一问比较简单,考虑从大到小插入,在相同情况下,按关键值从小到大插入 这样子,关键大的元素一定会影响到关键小的元素 ...

  4. 三周学会小程序第四讲:Heroku 绑定 Github 自动部署

    这一讲是根据读者的反馈补充的一个讲解,好多读者反应安装 Heroku-cli 遇到问题,或者是操作繁琐,其实上一讲中提到的 Heroku 只是为了免费部署,而安装 Heroku-CLI只是为了部署,所 ...

  5. 【8.23校内测试】【贪心】【线段树优化DP】

    $m$的数据范围看起来非常有问题??仔细多列几个例子可以发现,在$m<=5$的时候,只要找到有两行状态按位$&$起来等于$0$,就是可行方案,如果没有就不行. #include<i ...

  6. 【原】Eclipse更改字符编码,精华版

  7. bzoj 3172: [Tjoi2013]单词 AC自动机

    3172: [Tjoi2013]单词 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...

  8. spring aop 理解

    aop简介 aop是spring 的两大特性之一,还有IOC.主要提供面向切面的编程思想,区分于面向对象编程. aop原理(动态代理+反射) 在一个方法体中,可能会存在很多其他的方法调用,我们可以把每 ...

  9. The method setClass(Context, Class<?>) in the type Intent is not applicable for the arguments (GameV

    在当前短信内容的activity中写            Bundle bun = new Bundle();         bun.putString("message",  ...

  10. combotree的总结(这个好)

    1:最近有这个需求,就是ext下的combo下拉是树,网上的例子很多,封装的也很好,基本都可以满足下拉框下出现想要的树,但是我的使用情况是比如在用户编辑的时候,要把用户已经选择过的数值自动再赋值到下拉 ...