ios单元测试(一)

2017-02-27  本文已影响29人  角灯的技术博客

什么是单元测试

执行单元测试,是为了证明某段代码的行为确实和开发者所期望的一致。因此,我们所要测试的是规模很小的、非常独立的功能片段。通过对所有单独部分的行为建立起信心。然后,才能开始测试整个系统。

为什么要使用单元测试

没有单元测试

单元测试难以推动的原因

单元测试驱动类型

行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。主要是从用户的需求出发,强调系统行为。它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应。

BDD的核心价值是体现在正确的对系统行为进行设计,所以它并非一种行之有效的测试方法。它强调的是系统最终的实现与用户期望的行为是一致的、验证代码实现是否符合设计目标。但是它本身并不强调对系统功能、性能以及边界值等的健全性做保证,无法像完整的测试一样发现系统的各种问题。

测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。

1.编写测试用例

2.编写实现

3.运行测试

4.改进实现

5.重新测试

IOS中一些测试框架

XCTest(官方)

*与Xcode深度集成。而且可以享受Apple后续对XCTest升级的福利。

GHUnit

*GHUnit:集成度不如XCTest,安装麻烦。但是有自己的GUI界面。

KiWi(待了解)

OCMock(待了解)

Specta(待了解)

Github上的一些知名的开源库都用的测试框架

image

XCTest(官方)测试框架基本原理介绍

1.测试运行时序图

试类中会调用setup和tearDown方法,setUp是初始化方法,tearDown是释放资源的方法,他们在每次调用测试方法之前和之后调用。

因此,在测试类运行的生命周期中,这两个方法可能会多次运行,它们的时序图如图所示:

image

单元测试研究计划

研究输出成果 (4月上旬前)

XCTest文档和demo输出,框架基本使用 (一周)

GHUnit文档和demo输出,框架基本使用 (一周)

结合实际应用一段时间(4月中旬~6月上旬)

拿一个项目走单元测试流程

总结使用体验(6月中旬)

集成框架

根据使用情况、判断是否继续、或者是否推广使用

上一篇 下一篇

猜你喜欢

热点阅读