我在寫XCTestCase時遇到問題。我正在研究客戶端/服務器應用程序。用戶只能開始使用該系統時,這是自動完成的應用程序登錄到服務器:只能在某些情況下啓動XCTest
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// connect to server and login
[mySys login:^{
login = YES;
}];
}
我所有的測試情況下,當登錄標誌是隻能運行。因爲登錄可能有時需要。這意味着我必須讓所有測試至少等待一段時間(例如30秒)。這是這樣的:
-(void)setUp
{
// Need to be blocked here until timeout !!!
AppDelegate* app = [UIApplication sharedApplication].delegate;
if (app.login)
{
// quit from the block !!!
}
}
什麼可能是最好的策略來實現呢?謝謝
這太好了。但這取決於我要測試的內容。如果我要測試模型的邏輯。這將是一個很大的幫助。但實際上我也想用這個測試用例來測試Web服務。 –
那麼,你可以使用不同的單元測試方法來調用模擬對象,或者真正的模擬對象。但通常你不會在客戶端單元測試Web服務,因爲它只是一個連接。您可以在本地存根JSON響應(或任何它)。 – Tim
我想在這裏測試Web服務的原因是因爲我也是創建Web服務的人。所以我想節省一些時間一起測試它。如果Web服務就像Facebook,Tweitter等,那麼我基本上可以使用模擬或存根方法。但就我而言,這樣做可能太麻煩。因爲我必須更改模擬/存根,因此在更改Web服務時進行建模。 –