2017-11-16 2 views
0

通常、iOSユニットテストでは、新しいオブジェクトを作成し、テストしたいメソッドを呼び出して、結果を検証します。これはスタンドアロンの手順です。テストケースは常にappインスタンスで実行を開始しますが、そのインスタンスには直接アクセスしません。KIFやEarlGreyのようなフレームワークは、実行中のアプリケーションにどのようにアクセスしますか?

しかし、KIFやEarlGreyのようなフレームワークでは、実行中のアプリケーションインスタンスにアクセシビリティラベルを付けてUI要素にアクセスすることで、機能テストを書くことができます。私はそれがどのように実装されているのだろうかと思います。テストの開始時に、コンテキストまたはルートビューコントローラオブジェクトのようなものはありません。フレームワークはプレゼンテーションビューコントローラを「どこからも」見つけ出しません。

答えて

1

これらはXCTestのユニットテストのパラダイムに基づいているためです。それで、テストとアプリは同じバンドルに入っているので、アプリの内部構造にアクセスできます。

[UIApplication sharedApplication]を使用すると、実際にアプリケーションのUIWindowを取得し、View Hierarchy全体を見つけることができます。

+0

ありがとうございます! iOSの単体テストは、実行中のアプリケーションのモジュールに似ており、アプリケーションの他の部分と同様にアプリケーションインスタンスにアクセスできることが判明しました。 – Wizard

関連する問題