iOS单元测试的一点理解

Figuring Out What to Test

通常情况下,单元测试需要包括:

1、核心功能:model类和方法以及与其交互的controller

2、最常见的UI工作流程

3、边界条件

4、Bug修复

FIRST principles

首字母缩写词FIRST描述了有效单元测试的一组简明标准。这些标准是:

1、fast:测试应该快速完成

2、Independent/Isolated:测试不应互相共享状态

3、Repeatable:每次运行测试时,您应该获得相同的结果。外部数据提供者或并发问题可能会导致间歇性故障。

4、Self-validating:测试应完全自动化。输出应该是“通过”或“失败”,而不是依赖于程序员对日志文件的解释。

5、Timely:理想情况下,应该在编写要测试的生产代码之前编写测试

Unit Testing in Xcode

Creating a Unit Test Target

在Xcode中使用快捷键Command-6去打开Test navigator

点击+号按钮去添加单元测试对象


iOS单元测试的一点理解_第1张图片


iOS单元测试的一点理解_第2张图片

默认模板给出setUp(),tearDown()两个方法和两个测试的例子方法

这里总共有3个方式来运行测试:

1、Command-U来运行所有的测试

2、在Test navigator中点击箭头按钮

3、在gutter中点击菱形按钮


在测试的方法中我们一般把代码分成given,when和then三个部分

1、Given:这一步,把需要用到的数值配置好

2、When:执行需要测试的代码

3、Then:这一步你将捕捉你期望的结果,通过XCTestAssertion

func testScoreIsComputed(){

// 1. given

let guess = sut.targetValue + 5

// 2. when

sut.check(guess: guess)

// 3. then

XCTAssertEqual(sut.scoreRound,95,"Score computed from guess is wrong")

}

参考资料:https://www.raywenderlich.com/960290-ios-unit-testing-and-ui-testing-tutorial

你可能感兴趣的:(iOS单元测试的一点理解)