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 次 |
最近记录: |