0

iOSの自動テストでユーザーアクションの結果をテストすることは可能ですか? たとえば、ユーザーが保存ボタンをクリックした場合、アプリがファイルを作成したことを確認するにはどうすればよいですか。Appium と Apple 製の XCUITesting を試しましたが、わかりません。

4

1 に答える 1

0

Apple の XCUITesting では、テスト アプリは別のプロセスに存在し、アプリのサンドボックスに直接アクセスすることはできません。そのため、ファイルが作成されたことをアプリの UI が何らかの視覚的なフィードバックを提供しない限り、公式ツールを使用してそれを確認する方法はありません。

このようなテストを作成できるようにする UI テスト機能を拡張するSBTUITestTunnel (免責事項、私はライブラリの作成者です) を使用できます。たとえば、アプリがtest_file.txtをアプリの Document フォルダーに保存すると仮定すると、次のテストを作成できます。

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起動時にアプリのファイル システムをリセットするを渡す方法に注意してください。このオプションを使用すると、以前のセッションから独立したテストを作成できます。

于 2016-07-20T15:59:09.450 に答える