最近看了一下单元测试相关的内容,虽然对单元测试,有很多开发人员有不同的意见,但是我觉得单元测试对整个项目和个人的代码质量提高有很高的促进作用.
单元测试和 TDD开发的解释网上很全,比如:
https://zh.wikipedia.org/zh/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91
http://baike.baidu.com/link?url=vCJ5aJAi-KxpXQt6zdKkskoegKEemQhCfnsyxSuSerRsRtOk_KNAbfqDkpMFV6NT
关于iOS的单元测试的介绍也有很多.这里就不摘录了,可以自己去看一下
http://www.cocoachina.com/applenews/devnews/2013/0724/6667_2.html
OCUnit 分为功能测试(application test)和逻辑测试(logic test) 主要区别是 功能测试需要在 setup函数获取 APPDelete 调用视图资源
下面的内容只是个人参看网上的指导小小实验了一下iOS中的单元测试,以后在编写代码的时候会带上单元测试.
苹果官方代码示例中也有一个Demo, https://developer.apple.com/library/ios/samplecode/UnitTests/Introduction/Intro.htmlD
OCUnit是XCode集成的,所以其与工程的结合理应是最好的,添加到工程中的成本也理应最低。
首先创建工程的时候勾选“Include Unit Tests”的选项, 在Xcode5中就是默认勾选的.
如果为以创建的工程添加单元测试可以添加一个Target 选择 cocoa Touch Unit Testing Bundle 创建一个测试Target
添加完成就是这样的,
在 UnitTestTests.m 中 默认有三个方法:
- (void)setUp
{
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown
{
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample
{
XCTFail(@"No implementation for \"%s\"",__PRETTY_FUNCTION__);
}
- (CGFloat)additionWithFirstPar:(CGFloat)firstPar secondPar:(CGFloat)secondPar {
return (firstPar + secondPar);
}
测试类实现:
然后 commend + U 快捷键 运行测试程序.
如果有错误就会跳到错误位置.
至此,最简单的单元测试已经可以运行了,更多的项目中的单元测试还需结合功能实现和结构设计来编写测试用例测试.
有机会我会继续编写一些项目中的测试用例.
希望大家都能将单元测试执行起来.