1
A
回答
2
您可以使用信號量等到您從異步調用中獲得結果。
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
// Do your async call here
// Once you get the response back signal:
[self asyncCallWithCompletionBlock:^(id result) {
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
0
在您的-setup
方法中,使用上面的信號量或使用dispatch_group。 dispatch_group是我的首選方法。
@implementation XCTTestSubClass()
{
dispatch_group_t _dispatchGroup;
}
@end
-(id)init
{
_dispatchGroup = dispatch_group_create();
return [super init];
}
-(void)setup
{
dispatch_group_async(_dispatchGroup, dispatch_get_current_queue(), ^{
//your setup code here.
});
}
然後覆蓋-invokeTest
並確保組塊(設置)已完成運行。
-(void)invokeTest
{
dispatch_group_notify(group, dispatch_get_current_queue(), ^{
[super invokeTest];
});
}
這保證了-setup
完成後的測試纔會運行。
相關問題
- 1. 在異步void完成後運行void
- 2. 異步方法測試
- 3. 如何測試在主線程上運行異步的方法?
- 4. 從非異步方法在並行中運行異步方法
- 5. 啓動完成後的運行方法
- 6. 單元測試setUp/tearDown是否在異步測試中工作?
- 7. Facebook JavaScript API:異步調用完成後運行一行代碼
- 8. 爲每個測試套件運行setUp()和tearDown()方法InstrumentationTestCase Android
- 9. SetUp方法在從teamcity運行測試時失敗
- 10. 只有當異步方法完成
- 11. 等待異步方法完成
- 12. 等待異步方法來完成
- 13. 等待兩種異步方法完成
- 14. C#5異步方法完成事件。
- 15. 異步方法訥韋爾完成
- 16. 通用異步完成方法
- 17. 等待異步方法完成
- 18. 等待異步方法完成
- 19. 等待完成異步方法
- 20. TeamCity測試可以異步運行
- 21. GenServer異步集成測試
- 22. 僅在異步函數完成後才運行代碼
- 23. 異步操作完成後運行一個函數
- 24. Gulp:異步任務完成後運行代碼
- 25. 如何在兩個異步函數完成後運行函數
- 26. 如何在maven完成集成測試後運行包目標?
- 27. Tomcat的繼續運行後集成測試完成
- 28. 單元測試在peek完成時使用的異步回調方法
- 29. 測試一個異步方法調用
- 30. 測試requireJS方法與Jasmine異步