2017-09-13 21 views
1

Androidユニットの新機能@Ruleの下で、Espressoを使用してテストしていますが、メンバー変数を作成する目的は何ですか?変数の名前は重要ですか?私がテストしているアクティビティ(またはサービス、クラス)をテストユニットに伝える必要があるが、変数とそのスコープはどこでも気にしなければならない場所に使われています。Android Espresso UIテストの@Ruleの目的は何ですか?

@Rule 
    public ActivityTestRule<MenuActivity> mActivityTestRule = new ActivityTestRule<>(MenuActivity.class); 

答えて

1

エスプレッソとAndroidのUIテストでいくつかのより多くの練習とreserachを行った後、@Rule変数のためのユースケースの多くを得ました。うちのアイドリングリソース(非同期で発生するビューとデータ)のテストがあります。 ActivityTestRuleオブジェクト(例:mActivityTestRule)を使用してリソースを参照し、そのクラスのタグ@VisibleForTestingで公開メソッドを呼び出すことができます。

ex。

// In the activity 
    @VisibleForTesting 
    @NonNull 
    public SimpleIdlingResource getmSimpleIdlingResource() 
    { 
     if (mSimpleIdlingResource == null) 
     { 
      mSimpleIdlingResource = new SimpleIdlingResource(); 
     } 
     return mSimpleIdlingResource; 
    } 

// In the Test class 
    // the test is run. 
    @Before 
    public void registerIdlingResource() { 
     mIdlingResource = mActivityTestRule.getActivity().getmSimpleIdlingResource(); 
    } 
関連する問題