4

私は数週間前にEspressoのテストで遊んでいました。そして、ついにFragmentsのテストを開始することに決めました。エスプレッソ - 断片をテストするための現在のアクティビティを取得するには?

すぐに問題に遭遇しましたが、どうすれば現在のアクティビティを取得できますか?

私のアプリはログインのデータを使用しているため、テストルールでアクティビティを起動できません。 簡単に言えば、エスプレッソテストを行うときにgetActivity()に類似したものがありますか?私は通常、このようにそれを得る、それが見えます(おそらくです)

答えて

13

ハックしかし、ちょっと、それは

import static android.support.test.InstrumentationRegistry.getInstrumentation; 

public class MyTest { 

    private Activity getActivityInstance(){ 
     final Activity[] currentActivity = {null}; 

     getInstrumentation().runOnMainSync(new Runnable(){ 
      public void run(){ 
       Collection<Activity> resumedActivity = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED); 
       Iterator<Activity> it = resumedActivity.iterator(); 
       currentActivity[0] = it.next(); 
      } 
     }); 

     return currentActivity[0]; 
    } 
} 
+0

に動作しますが、これはどのように解決するでしょうか? 私はこのように使用しました: 'val activity = mActivityTestRule.getActivity() val idlingResource = ElapsedTimeIdlingResource(アクティビティ)' – Morozov

+0

私はあなたの問題を理解できませんでしたか? – lelloman

+0

私の英語では残念です。別のクラスであなたのメソッドを呼び出しますか? – Morozov

関連する問題