私はエスプレッソテストを書いています。ここにテストケースがあります。45秒以内にインテントを起動できませんでした。多分、メインスレッドは妥当な時間内にアイドル状態にならなかったでしょうか?
OnClick of Fab、アプリはQuizActivityを起動します。
私のアプリについて少し説明しましょう。
だから、アプリの要件でした -
- 私はrecyclerviewに、データベースからこのデータをロードし、それを解析し、主な活動上のデータベース
- にデータを格納する必要がある資産フォルダ
- でJSONファイルがあります。 )(
- MainActivityののonCreateで - それはアプリQuizActivityに(私はrecyclerviewにロードされている)データのランダムなリストを渡すののFabボタンは、私がコーディングどうやっ ここ
があるクリックで、ありますAsyncTaskを使用して、データベースにデータを1回だけ解析して挿入します。
- データが利用可能になったら、AsyncTaskLoader
- を使用してrecyclerviewにロードし、FabのOnclickリスナーを設定します。必要なデータをQuizActivityに渡しました。以下は
私のアプローチがある
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
/* @Rule
public IntentsTestRule<MainActivity> intentsTestRule =
new IntentsTestRule<MainActivity>(MainActivity.class);
*/
@Rule
public ActivityTestRule<MainActivity> intentsTestRule =
new ActivityTestRule<MainActivity>(MainActivity.class,false,true);
@Test
public void fabTest(){
onView(withId(R.id.fab)).perform(click());
//Check if the text_question textview is displayed
onView(withId(R.id.text_question)).check(matches(isDisplayed()));
}
/* @Test
public void clickFloatingActionButton() {
onView(withId(R.id.fab))
.perform(click());
intended(hasComponent(new ComponentName(getTargetContext(), QuizActivity.class)));
}*/
}
私のテストです -
- のFab
- を探すtext_questionのTextViewに表示されている場合
- チェックをクリックし実行します。このテキストビューはQuizActivityにあります。
私は取得していますテストを実行した後
java.lang.RuntimeException:意図テントを起動できませんでした{ 行為= android.intent.action.MAIN FLG = 0x14000000 CMP = my_package_name/.MainActivity}を45秒以内に入力します。多分、 メインスレッドは、妥当な時間内にアイドル状態にならなかったでしょうか? 画面をアニメーションや何かを常時ペイントすることができます。または、アクティビティが作成時にネットワークコールを行っていますか?スレッドダンプログ を参照してください。あなたの活動の開始要求が1505287862579であった前に、イベントキューがアイドルだった最後の時間は、 でした。最後にキューがアイドルになったのは でした。これらの数字が の場合、同じアクティビティがイベントキューを突き抜けている可能性があります。
PS - すべてのアニメーションをオフにしました。コードに進捗バーがありません。
また、onCreate()メソッドのAsyncTask、AsyncTaskLoader、RecyclerViewの部分をコメントアウトすると、テストがパスします。
バックグラウンドタスクの原因である可能性があります。
誰もが同様の問題に直面しましたか?あなたが解決策を知っていれば教えてください。私は2日間から苦労している。私はstackoverflowで同様のスレッドを検索したが、何も私のために働いた。