2017-09-13 74 views
1

新的Android單元測試與Espresso,在@Rule下,創建一個成員變量的目的是什麼?變量的名稱是否重要?我知道我需要告訴測試單元我正在測試哪種活動(或服務,類),但它是我需要關心的任何地方使用的變量和範圍?Android版咖啡UI測試中@Rule的用途是什麼?

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

回答

1

做一些更多的實踐和啓發式算法與咖啡的Android UI測試後,得到了很多的使用案例@rule變量。其中包括測試Idling資源(視圖和數據會發生異步)。使用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(); 
    }