アクティビティ内でUIをテストしようとしています。ただし、このアクティビティはいくつかのバックグラウンドネットワーク操作を実行し、応答の更新時に、テストしようとしている実際のコンポーネントへのフラグメントを更新します。
画面にまだレンダリングされているビューでAssertNotNullを試行しているため、単体テストが失敗します。
アクティビティがこのバックグラウンド操作を実行し、すべてがセットアップとテストの準備ができている必要があることを単体テストに通知するにはどうすればよいですか?
アクティビティ内でUIをテストしようとしています。ただし、このアクティビティはいくつかのバックグラウンドネットワーク操作を実行し、応答の更新時に、テストしようとしている実際のコンポーネントへのフラグメントを更新します。
画面にまだレンダリングされているビューでAssertNotNullを試行しているため、単体テストが失敗します。
アクティビティがこのバックグラウンド操作を実行し、すべてがセットアップとテストの準備ができている必要があることを単体テストに通知するにはどうすればよいですか?
いくつかの調査といくつかの遊びをした後、これを行うには2つの方法があるようです。まず、@ yorkwが提案するように、sleep()を使用して、すべての時間を計ることができます。
私の腸は、これは最善の考えではないと言っています。これで遭遇する可能性のある問題がたくさんあります。より良い解決策は、アプリケーションを作成するときにテストを考慮に入れることです。私はユニットテストについてのいくつかのビデオを見ました、そしてこの1つのGoogleの話は際立っていました。クリーンなコードトークこれを見て、テストが難しいコードのテストを書いてみた後、単体テストを作成し、ビジネスロジックを実装/表示ロジックから分離することにまったく新しい感謝の念を抱きました。
したがって、簡単な答えは、これらの問題が発生しないようにアプリケーションをより適切に実装することです。