如何验证永远不会使用OCMock 3调用方法?
我在想这样的事情:
XCTAssertThrows(OCMVerify([_restDataSource getSomeStuff:[OCMArg any]]));
但似乎OCMVerify不会因为失败而抛出。
答案 0 :(得分:10)
请参阅http://ocmock.org/reference/#advanced-topics
下的第一点请注意,此时reject
需要旧式语法,并且必须在调用方法之前调用它,即
// first set up the mock
[[mock reject] methodThatShouldNotBeCalled]
// then call method that should not result in the call
有关计划内容的一瞥,请参阅https://github.com/erikdoe/ocmock/issues/109
答案 1 :(得分:1)
答案 2 :(得分:0)
我失败了让 reject-method 工作,所以我的解决方案是简单地存根方法 - 不要被称为(notifyChange:在示例中)如果被调用则抛出异常。
// Set up the mock.
id<TSModelObserver> observer = OCMProtocolMock(@protocol(TSModelObserver));
// Stub the forbidden method call with throwing an exception.
[OCMStub([observer notifyChange:model]) andThrow:[NSException new]];