2016-07-20 97 views
0

是否可以使用ios中的自動測試來測試用戶操作的結果?例如,如何檢查應用程序是否創建了一個文件,如果用戶點擊了保存按鈕。我曾嘗試過Appium和蘋果公司製造的XCUITesting,但我無法弄清楚。用戶界面結果測試

回答

0

使用Apple的XCUITesting測試應用程序位於單獨的進程中,並且無法直接訪問應用程序的沙箱,因此,除非您的應用程序的UI提供了某種形式的視覺反饋來創建該文件,否則無法檢查使用官方工具。

您可以使用SBTUITestTunnel免責聲明,我是庫的作者),它擴展了UI測試功能,允許編寫這樣的測試。另外,在假設前,你的應用程序節省了在應用程序文件夾的文件test_file.txt你可以寫下面的測試:

func testThatFileExistsAfterTap() { 
    // launch app 
    app = SBTUITunneledApplication() 
    app.launchTunnelWithOptions([SBTUITunneledApplicationLaunchOptionResetFilesystem]) { 
     // do additional setup before the app launches, if needed 
    } 

    app.buttons["action"].tap() // button that triggers file save 

    // add some expectation on the UI to wait for the write to complete (UIActivity indicator, etc) 

    let fileData = app.downloadItemFromPath("test_file.txt", relativeTo: .DocumentDirectory) 

    // XCTAssert() that fileData contains the expected data 
} 

注意你如何通過其在重置應用程序的文件系統中的SBTUITunneledApplicationLaunchOptionResetFilesystem啓動。該選項允許您編寫獨立於以前會話的測試。

+0

請幫我解決這個問題,我已經將這些文件添加到項目手冊中,並且在每個文件中選擇了目標,但是大樓總是失敗並顯示錯誤:鏈接器命令失敗,因爲架構arm64沒有找到符號,所以我無法在應用中啓動隧道。 –

+0

你嘗試過使用CocoaPods嗎?這是迄今爲止添加庫的最簡單方法。 –

+0

對不起,這樣的白癡,但我不能讓它工作。我嘗試了CocoaPods,安裝了pod文件(我使用了示例項目中的一個,但是重寫了目標文件),然後使用了CocoaPods生成的工作空間,並且我在這裏停留了。 –