使用OCunit在iOS上testingasynchronous代码

有谁知道任何现有的库,允许与OCUnittestingasynchronous代码? 我正在考虑像GHAsyncTestCase ,但从SenTestCase

我问,因为如果我没有find任何我要将GHAsyncTestCase到OCUnit,但我不想重复别人已经完成的工作。

彼得:

你可能对我用Mimic做的工作感兴趣, Mimic是用Ruby编写的一个networking桩工具,它允许你在高层存根请求,并可以使用提供的包装器从你的Objective-C中使用。

关于asynchronoustesting,请看看我写的叫做AssertEventually的一个小工具。

这个例子显示了Mimic和assertEventually在行动。

另外,你可能想看看Kiwi–这是一个非常棒的Objective-Ctesting框架,build立在OCUnit之上。 我最近贡献了一个补丁来将我的AssertEventually行为移植到Kiwi上,它可以让你写下如下的东西:

 id someObject = nil; [do SomethingThatFetchesSomeObjectAsynchronously]; [[theObject(&someObject) shouldEventually] equal:@"some result"]; 

AGAsyncTestHelper采用与AssertEventually稍有不同的方法,因为它正在评估expression式而不是检查新的结果的指针。 使用AGAsyncTestHelper的一个好处是它可以用于块,委托callback和什么。

 WAIT_WHILE(<expression_to_evaluate>, <max_duration>); 

回答这个问题

 id someObject = nil; [self doSomethingThatFetchesSomeObjectAsynchronously]; WAIT_WHILE(self.someObject == nil, 1.0);