首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OCunit在iOS上测试异步代码

使用OCunit在iOS上测试异步代码
EN

Stack Overflow用户
提问于 2011-01-14 05:38:58
回答 2查看 4.1K关注 0票数 7

有没有人知道现有的库可以用OCUnit测试异步代码?我考虑的是像GHAsyncTestCase这样的东西,但它是从SenTestCase提供的。

我之所以问这个问题,是因为如果找不到,我会将GHAsyncTestCase移植到OCUnit,但我不想重复其他人已经完成的工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-25 00:17:05

Piotr:

您可能会对我使用Mimic所做的工作感兴趣,这是一个用Ruby语言编写的网络存根工具,它允许您在较高级别上存根请求,并且可以通过附带的包装器在Objective-C中使用。

关于异步测试,请看一下我写的一个名为AssertEventually的小工具。

This example同时展示了Mimic和assertEventually。

此外,你可能想看看Kiwi --它是一个建立在OCUnit之上的很棒的小型Objective-C测试框架。我最近贡献了一个补丁,将我的AssertEventually行为移植到Kiwi,它让你可以写下这样的东西:

代码语言:javascript
复制
id someObject = nil;
[do SomethingThatFetchesSomeObjectAsynchronously];
[[theObject(&someObject) shouldEventually] equal:@"some result"];
票数 11
EN

Stack Overflow用户

发布于 2013-07-26 18:24:21

AGAsyncTestHelper采用了与AssertEventually略有不同的方法,因为它计算表达式,而不是检查指针是否有新的结果。使用AGAsyncTestHelper的一个优点是,它可以用于块、委托回调等。

代码语言:javascript
复制
WAIT_WHILE(<expression_to_evaluate>, <max_duration>);

回答问题

代码语言:javascript
复制
id someObject = nil;
[self doSomethingThatFetchesSomeObjectAsynchronously];
WAIT_WHILE(self.someObject == nil, 1.0); 
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4685582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档