OCMockito:验证模拟的方法在将来的某个时候被调用

OCMockito: verify that a method of a mock is called sometime in the future

首先我模拟了一个对象。 然后我做了一些应该调用对象的特定方法的事情。调用是异步的。

所以我想验证的是:最多5秒后,应该调用mock对象的这个方法。

有什么想法吗?

OCMockito 不支持异步验证(目前)。在此之前,我建议改用手卷模型,以及 OCHamcrest 的 assertWithTimeout.

例如,这是一个手动模拟以确认调用了 fooBar

@interface MockFoo : NSObject
@property (nonatomic, assign) BOOL fooBarWasCalled;
- (void)fooBar;
@end

@implementation MockFoo

- (void)fooBar
{
    self.fooBarWasCalled = YES;
}

@end

然后与 OCHamcrest:

assertWithTimeout(5, thatEventually(@(myMock.fooBarWasCalled), isTrue());