2012-07-27 12 views
8

ActivityInstrumentationTestCase2を使用してログインアクティビティに対して複数のテストケースを実行しようとしています。最初のテストケースはログイン成功をテストし、startActivity(Intent intent)を呼び出してActivityに次のActivityを起動させます。今、テストしようとしているアクティビティの上に別のアクティビティがあります。最初のテストケースが通過し、2番目のテストケースが開始されます。しかし、getActivity()が2番目のテストケースによって呼び出されているとき、それは永遠にgetActivity()でハングします。ActivityInstrumentationTestCase2によるAndroidユニットテスト、以前のテストケースで別のアクティビティが起動されたときにgetActivity()がハングアップする

ログインアクティビティのコードに入り、startActivity(Intent intent)を呼び出す部分をコメントアウトすると、両方のテストケースが正常に実行されます。

私はすでにいくつか試してみました。アクティビティスタックをクリアするためにIntent.FLAG_ACTIVITY_CLEAR_TOPを使用しました。この場合、トップアクティビティが閉じられ、ログインアクティビティが表示されますが、2番目のテストケースが開始されたときにgetActivity()でスタックされます。

私もKeys(KeyEvent.KEYCODE_BACK)を送信しようとしましたが、それは効果がありません。

これを解決するにはどうすればよいですか?ありがとう!

+0

getInstrumentation()addMonitor(NextActivity.class.getName()、NULL、TRUE)。トリックをやった! – initialxy

答えて

4
getInstrumentation().addMonitor(NextActivity.class.getName(), null, true); 

トリックはありましたか。最後のパラメータは、アクティビティの起動をブロックするかどうかを示すフラグです。それをtrueに設定すると問題が解決しました。

link to doc

+3

どこにこの通話を追加しましたか?より完全な回答を投稿できますか? –

関連する問題