Iphone 如何在XCode中对异步返回结果的函数进行单元测试?
我有点像Iphone 如何在XCode中对异步返回结果的函数进行单元测试?,iphone,objective-c,unit-testing,Iphone,Objective C,Unit Testing,我有点像 - (void)getData:(SomeParameter*)param { // Remotely call out for data returned asynchronously // returns data via a delegate method } - (void)handleDataDelegateMethod:(NSData*)data { // Handle returned data } 我想为此编写一个单元测试,我怎样才能做得比 NS
- (void)getData:(SomeParameter*)param
{
// Remotely call out for data returned asynchronously
// returns data via a delegate method
}
- (void)handleDataDelegateMethod:(NSData*)data
{
// Handle returned data
}
我想为此编写一个单元测试,我怎样才能做得比
NSData* returnedData = nil;
- (void)handleDataDelegateMethod:(NSData*)data
{
returnedData = data;
}
- (void)test
{
[obj getData:param];
while (!returnedData)
{
[NSThread sleep:1];
}
// Make tests on returnedData
}
getData:
方法调用模拟,并检查它是否正确调用handleDelegateMethod:
方法,并确保它对给定的数据执行任何应该执行的操作如果您不能像Chuck所说的那样将模拟数据发送回您的代理,您可以执行以下操作:
getData
NSDate *twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
while (!callBackInvoked && !errorHasOccured && runCount-- && [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:twoSecondsFromNow]) {
twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
}