单元测试-OCMock

593 阅读1分钟

ocmock用来虚拟类及方法的调用。正常情况可以不需要此mock,但在特殊情况下可以进行mock以跳过某些步骤。

安装

source 'https://github.com/CocoaPods/Specs.git' 
  target 'MockDemoTests' do
    pod 'OCMock' #在test target下使用
  end

使用

- 生成Mock对象

  • OCMClassMock

优先调用stub实例方法,未找到调用stub类方法,不调用原来方法。

  • OCMPartialMock

优先调用stub实例方法,不能调用stub类方法,否则调用原来的实例方法,不能调用原来类方法,不满足条件无法验证通过。

  • OCMStrictClassMock

只能调用stub方法,否则OCMVerifyAll(mockA)会抛出异常。

- 置换方法

调用该方法不会走具体的实现,直接使用return值替换

id xxxClass = [OCMock mockForClass[XXX class]];
[OCMStub([xxxClass method:[OCMArg any])andReturn(@"")];

- 验证方法的调用

OCMVerify([mock someMethod]);

-添加预期

OCMExpect([mock handleLoadSuccessWithPerson:[OCMArg any]]);

参数约束 网络接口模拟 恢复类 参考: mp.weixin.qq.com/s/3JhgsKJ8p…