iOS:如何使用GHUnit进行不确定的异步单元测试?

时间:2012-10-26 03:52:38

标签: ios unit-testing

我使用GHUnit进行单元测试,并编写了GHAsyncTestCase的子类,但在我的情况下,Web服务不像是一个活动服务请求,你发送请求并希望得到答案,而不是这个,我的Web服务是一个被动类型的服务,你订阅一个频道,然后它可以发送消息,但不能保证服务器将消息推送到订阅者的频率,在这种情况下,比如订阅后50秒,服务器推送消息和其他消息后30秒,我应该这样做:

[self waitForStatus:kGHUnitWaitStatusSuccess timeout:50.0f];

验证第一条消息,还是有任何聪明的方法来执行此操作?

谢谢!

1 个答案:

答案 0 :(得分:0)

这取决于你想做什么。 如果要验证来自服务器的数据,可以向服务器发送请求,要求它立即推送并使用

[self waitForStatus:kGHUnitWaitStatusSuccess timeout:50.0f];

等待推送的消息。

您想要验证您的objective-c代码,您可以向您的对象发送一些虚假数据。 如果您使用NSURLConnection获取数据,请在测试代码中使用一些假数据调用下面的委托方法

- (void)connection:(NSURLConnection *)aConnection didReceiveData:(NSData *)data

单元测试背后的想法是“单元”测试。测试代码应该关注您要测试的“单元”。从测试中排除其他不可控因素(如网络可用性)是一种很好的做法。