1. 安装
OCMock 有一个 framework 和一个静态库,iOS 开发选静态库,OS X开发选framework。静态库支持模拟器与真机。
Targets: 注意选择测试target
- 添加静态库:Build Phases -> Link Binary With Libraries: 添加 libOCMock.a
- 设置 linker flags: Build Settings -> Other Linker Flags : 添加 -ObjC
- 添加编译路径:Build Settings -> Header Search Paths: 添加 $(PROJECT_DIR)/usr/include 【ocmock的头文件路径】
2.使用
思路:虚拟一个不易构造或不易获取的对象进行测试。一般可以用来给构建网络请求接口的特殊返回测试,在请求不方便或者查询数据库代价太大的情况下。
2.1 虚构某个类的实例
id tableviewMock = OCMClassMOck([UITableView class]);
2.2 虚构某个方法的返回值
OCMStub([connectionMock getData]).andReturn(dataArr);
2.3 验证某个方法是否被调用
OCMVerify([controller viewWillAppear:YES]);
2.4 设置期望或预设,否则抛出异常
OCMExpect([classMock addTweet:[OCMArg isNotNil]]);
OCMStub([classMock addTweet:[OCMArg isNotNil]]);