天天看点

iOS基础 - 单元测试

单元测试(unit testing):对软件中最小可测试单元进行检查和验证。一般面向过程的语言中,基本单元为函数,面向对象的语言中,基本单元通常是类,其实对于一个手机上的app来说基本单元也可以是一个UI页面。平时我们写了一个函数,执行以下看是否正常工作,也属于单元测试。

测试用例(test case):对测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、输出数据、测试步骤、预期结果、测试脚本等。

它是一种检验行为,便于我们写出高质量代码。

它是一种设计行为,有利于我们编程能力的提高。

它是一种文档编写行为,让我们的程序有据可依。

Xcode内置了OCUnit单元测试框架。在Xcode5之前,建立项目的时候有一个选项,让我们选择是否建立一个含有单元测试target的项目,而在Xcode5中只要建立一个项目就默认带有一个单元测试的target。

在Xcode5之前,建立一个工程的时候如果没有勾选单元测试的话也不要紧,可以自己添加一个单元测试的target。

在弹出选择框中 IOS-->Other---> Cocoa Touch Unit Testing Bundle

这里看似OK,但还是差一步,在点击RUN,长按后产生TEST,点击TEST进行开启测试时,将产生一个提示:The scheme "工程名" is not configured for testing. edit the scheme to enable testing,or cancel the action.即我们还没有给工程配置测试工程行,点击修改来添加,或点击取消进行结束。点击Edit Scheme (或菜单中Product->edit Scheme)

弹出scheme窗体。选中Test,然后点击+号来没加一个scheme

选中之前创建的CoredataDemoTest后点击ADD

说明:

在Xcode5中测试类必须继承自XCTestCase。在Xcode5之前测试类必须继承自SenTestCase。

测试函数的形式必须是无返回值且以‘test’为前缀,如:- (void)testLogin;

每个测试用例都是从- (void)setUp;开始,进行初始化,以- (void)tearDown结束,释放资源。

运行测试用例:

command + u。

长按运行按钮选择列表中的test;