Goa*_*ine 20
查看OCMock 的测试文件,您似乎需要拥有与expect调用相同数量的s.所以,如果你打someMethod三次电话,你需要做...
[[mock expect] someMethod];
[[mock expect] someMethod];
[[mock expect] someMethod];
...test code...
[mock verify];
Run Code Online (Sandbox Code Playgroud)
这看起来很难看,也许你可以把它们放在一个循环中?
aki*_*don 12
通过利用委托给块的能力,我获得了成功:
OCMStub([mock someMethod]).andDo(^(NSInvocation *invocation)
{ /* block that handles the method invocation */ });
Run Code Online (Sandbox Code Playgroud)
在块中,我只是递增一个callCount变量,然后断言它与预期的调用次数匹配.例如:
- (void)testDoingSomething_shouldCallSomeMethodTwice {
id mock = OCMClassMock([MyClass class]);
__block int callCount = 0;
OCMStub([mock someMethod]).andDo(^(NSInvocation *invocation) {
++callCount;
});
// ...exercise code...
int expectedNumberOfCalls = 2;
XCTAssertEqual(callCount, expectedNumberOfCalls);
}
每次调用时都应调用该块someMethod,因此callCount应始终与实际调用该方法的次数相同.
| 归档时间: |
|
| 查看次数: |
6034 次 |
| 最近记录: |