OCMock / OCMVerify-未使用表达式结果

问题描述

由于Expression result unused警告/错误,无法编译以下调用

id object = [Foo new];
id mockObject = OCMPartialMock(object);
...
Ocmexpect([mockObject doTheThing]);
...
OCMVerify(mockObject);

在Xcode 12 GM上测试:

$ clang -v
Apple clang version 12.0.0 (clang-1200.0.32.2)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode_12_GM.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

解决方法

OCMVerify(...)替换为OCMVerifyAll(...)

OCMVerify(...)用于在运行后验证调用后,而OCMVerifyAll(...)用于验证在运行之前声明的期望。

id object = [Foo new];
id mockObject = OCMPartialMock(object);
...
OCMExpect([mockObject doTheThing]);
...
OCMVerifyAll(mockObject);