单元测试
- OCUnit(即XCTest测试)
- 这个就是苹果自己的测试框架
- GHUnit
- 这是一个可视化的测试框架,可以点击app来决定测试哪个方法,并且可以点击查看测试结果等。(后续详细叙述)
- OCMock
- 这个是模拟某个方法或者属性的返回值。(后续详细叙述)
创建一个简单的单元测试
- 新建项目:
最简单的单元测试 - 一个简单的测试demo
- 该类继承自XCTestCase类,其中包含三个方法:setUp,tearDown和testExample。setUp方法用于在测试前设置好要测试的方法,tearDown则是在测试后将设置好的要测试的方法拆卸掉。testExample是测试方法。测试方法必须以testxxx的格式,并且不能有参数和返回值,不然不会识别为测试方法。测试方法的执行顺序是字典排序。快捷键command+ u进行单元测试,这个快捷键是全部测试。当有多个测试方法时候不管顺序如何排列,测试方法执行的顺序与方法名中test后面的字符大小有关,小者优先,例如testA,testB1,testB2三个方法相继执行。在testExample方法中输入
NSLog(@"自定义测试testExample");
NSString *temp;
int a=3;
XCTAssertNil(temp,@"a为空");
XCTAssertTrue(3==a,@"a等于3");
进行网络请求的测试
使用CocoaPods安装AFNetworking和STAlerView
# platform :ios, '9.0'
target 'UnitTestDemo' do
pod 'AFNetworking', '~> 3.1.0'
pod 'STAlertView', '~> 1.0.0'
在Info.plist中添加NSAppTransportSecurity类型Dictionary。 在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES。
IOS9的http安全问题:现在进行异步请求的网络测试,由于测试方法主线程执行完就会结束,所以需要设置一下否则没发查看异步返回的结果。
#define WAIT do {\
[self expectationForNotification:@"RSBaseTest" object:nil handler:nil];\
[self waitFor