シンプルな問題。次のView Controllerにセグを実行するボタンがあります。 UI XCTestを書いて、私が望んでいたオープンビューコントローラーを教えてくれました。UITesting、XCTest現在のViewControllerクラス
10
A
答えて
23
UIテストフレームワークは、インスタンス上のクラスアサーションを不可能にするアプリケーションコードにアクセスできません。 に直接アクセスすることはできません。は、画面上にあるコントローラのクラスに伝えます。
しかし、あなたのテストについて少し違って考えると、非常に似たような主張ができます。 あなたがユーザーであるかのようにテストを書く。あなたはItemDetailViewController
またはItemListTableViewController
を見ているかどうか気にしないので、あなたのテストはどちらにもなりません。
ユーザーは画面上の内容を気にします。タイトルは何ですか?または、これらのボタンの名前は何ですか?そのロジックに続いて、コード化されたクラスの名前ではなく、それらの項目に基づいてアサートするようにテストを書き直します。
たとえば、コントローラをナビゲーションスタックに表示する場合は、タイトルをアサートできます。
let app = XCUIApplication()
app.buttons["View Item"].tap()
XCTAssert(app.navigationBars["Some Item"].exists)
また、画面がモーダルで表示されていても静的なテキストやボタンが分かっている場合は、それらを使用してください。
let app = XCUIApplication()
app.buttons["View Item"].tap()
XCTAssert(app.staticTexts["Item Detail"].exists)
XCTAssert(app.buttons["Remove Item"].exists)
関連する問題
- 1. サブモードの現在のモーダルViewController
- 2. サブビュー内のUIButton、現在のViewControllerのトリガアクション
- 3. 現在のフォームシートモーダルViewController horizontal flip
- 4. Rubyの現在のクラス
- 5. UI XCTest、ビューに存在する要素
- 6. iOSのUITestingエラー
- 7. iOS:現在のコンテキストでViewControllerをプッシュする方法
- 8. 現在のクラスのインスタンスメソッドのリスト
- 9. は、現在の外部クラスのオブジェクト
- 10. Pythonのタイプヒンティング方法は、現在のクラス
- 11. 現在のクラスを取得する
- 12. iphone UITestingボタン番号
- 13. xCode 7.1のアラートのUITesting
- 14. どのViewControllerが現在アクティブかをどのように知るのですか
- 15. 現在のクラスの固有クラスへのメソッドの結合
- 16. 現在のViewControllerでストーリーボードに作成されたラベルにアクセスする
- 17. 現在ロードされているviewcontrollerを見つける方法は?
- 18. GHunitを使用したUITesting
- 19. Jiraのクイックフィルタは、現在のユーザー現在
- 20. クラスのViewControllerはここで何intitalizers
- 21. インポートXCTestは、既存のプロジェクト
- 22. XCTestと別ファイルのiOSテスト
- 23. XCTestスイートのインポート方法
- 24. 異なるロケールでのXCTest
- 25. は、これが私の現在のクラスのドメインモデルであるAutoMapper
- 26. 活字体:現在のクラスの別の方法Supposably
- 27. のJava - リフレクション:取得現在のクラスに属するフィールドのみ
- 28. 次のdivを現在のクラス名と同じクラス名で取得する
- 29. VB.netで現在のクラスの種類を取得する
- 30. 現在のクラスのインスタンスに値を割り当てます。
ありがとう、これは多くの助けになります。私は自分自身で正確なことをしたが、私は何かが欠けていると思っていた。 –
私の場合は、app.buttons ["View Item"]。tap() 'の前に' sleep(1) 'しなければなりません。 – onmyway133
これを行うにはもっと良い方法があるはずです...アプリでテキストを変更するとどうなりますか?アプリケーションに複数のテキストのローカライズがあるとどうなりますか?ローカライズされていればかなりのテストが必要になり、テキストを変更する必要がある場合はメンテナンスの可能性があります。 –