Android版咖啡UI测试中@Rule的用途是什么?

问题描述:

新的Android单元测试与Espresso,在@Rule下,创建一个成员变量的目的是什么?变量的名称是否重要?我知道我需要告诉测试单元我正在测试哪种活动(或服务,类),但它是我需要关心的任何地方使用的变量和范围?Android版咖啡UI测试中@Rule的用途是什么?

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

做一些更多的实践和启发式算法与咖啡的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(); 
    }