2015-10-06 49 views
3

希望標題不太含糊。在我測試的應用程序中,某些應用程序流將啓動外部應用程序(例如Safari或Facebook)。我如何驗證應用是否通過UI測試啓動了它們?我可以像單元測試一樣測試openURL,但有沒有相當於UI的?用於外部啓動的Xcode UI測試

我不想在離開應用程序後真正繼續,只是爲了測試並確保啓動了適當的新應用程序或URL。模擬器/記錄器可以從啓動的應用程序中選擇UI元素,但測試會在代碼的那一點中斷。我也試着在菜單欄上找到一些東西(總是出現在應用程序中,像漢堡包的按鈕),然後在啓動其他應用程序(確保它不在那裏)後檢查它。但是這也打破了測試。

有沒有解決方法?或者這只是單元測試需要測試的東西?

回答

1

正如您所提到的,UI框架只能測試給定的應用程序。所以我會做一個斷言,以確保你以前的屏幕(在打開safari或facebook等之前)不再存在。因此,例如:

XCTAssertFalse(app.tables.elementBoundByIndex(0).exists, "Found element, so app didn't open safari/facebook") 

你只是聲稱元素出現,改變app.tables.elementBoundByIndex(0).exists是你檢查什麼元素。

+0

你會如何推薦這樣做?我嘗試斷言在創建外部消息之前創建的XCUIElement不再存在,但它破壞了測試。 – ajc6432

+0

@ ajc6432對不起 - 編輯我的答案包括一個例子。希望幫助男人!新框架很難習慣(在我看來)。 – cakes88

+0

是的,我已經嘗試過這樣的東西,但它並沒有工作:/。不過謝謝。我同意,有時它有點won。。 – ajc6432