Android Espresso UI测试中@Rule的目的是什么?

时间:2017-09-13 23:26:01

标签: android android-espresso

在@Rule下使用Espresso进行Android单元测试的新功能,创建成员变量的目的是什么?变量的名称是否重要?我得知我需要告诉测试单元我正在测试哪个活动(或服务,类),但变量和范围是否需要用于我需要关注的任何地方?

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

1 个答案:

答案 0 :(得分:2)

在使用Espresso进行Android UI测试的更多练习和研究之后,获得了@Rule变量的许多用例。其中包括测试空闲资源(视图和将发生异步的数据)。使用ActivityTestRule对象(例如mActivityTestRule)我可以引用资源,在该类中使用标记@VisibleForTesting触发公共方法。

离。

// 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();
    }