2016-06-28 15 views
0

UIテスト中に起動されたアプリケーションのApp Delegateから特定のプロパティrouterにアクセスしたいと思いますが、これが可能かどうかわかりません。私は試しました:UIテストからApp Delegateにアクセスするには?

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
let router = appDelegate.router 

しかし、これは失敗を与え、ビルドさえしません。私は自分のプロジェクトモジュールに@testableを使用しています。何か案は?

答えて

4

Xcode UIテストは、テストコードがユーザーに表示される内容しか見ることができないように設計されているため、テスト対象のアプリケーションのオブジェクトをテストコードで使用または検査することはできません。これは、画面上のビューがUIView子孫の代わりにXCUIElementオブジェクトとして表される理由です。

UIテストは、テスト対象のアプリケーションとは別の実行可能ファイルで実行されます。アプリからの追加情報をUIテストに伝える唯一の方法は、情報を含む文字列を作成し、それを要素のアクセシビリティ識別子として使用することです。

アプリケーションコードからオブジェクトにアクセスする必要があるものをテストする場合は、UIテストの代わりに単体テストを記述する必要があります。

関連する問題