单元测试和集成测试
Unit
: 单元测试,保证每一个类能够正常工作
UI
: UI测试,也叫做集成测试,从业务层的角度保证各个业务可以正常工作。
0. 单元测试
准则:
保持测试的单一性
无耦合
概念:
在计算机编程中,单元测试(英语:
Unit Testing
)又称为模块测试, 是针对程序模块的最小单位来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。 – 维基百科
优点:
避免低级错误
减少调试时间
增加可维护性
方便重构代码
缺点:
开发和维护成本高。
不能完全替代人工测试。
单元测试适合范围:
业务变动不频繁
业务属于核心功能
1. XCTest
- (void)setUp {
[super setUp];
//初始化的代码,在测试方法调用之前调用
}
- (void)tearDown {
// 释放测试用例的资源代码,这个方法会每个测试用例执行后调用
// 如测试踢人接口后,需要在结束时将对应成员拉回群里,以保证下次的单元测试能够正常进行。
[super tearDown];
}
// 判断这个类是否存在
- (void)testStackExist {
XCTAssertNotNil([TestStack class], @"不存在");
}
// 判断这类是否能创建
- (void)testStackCanCreate {
TestStack *stack = [TestStack new];
XCTAssertNotNil(stack, @"不能创建");
}
- (void)testPushANumberAndGetIt {
TestStack *stack = [TestStack new];
[stack push:2.0];
double topN = [stack pop];
XCTAssertEqual(topN, 2.0, @"怎么不相等呢");
// [stack push: