在@Rule下使用Espresso进行Android单元测试的新功能,创建成员变量的目的是什么?变量的名称是否重要?我得知我需要告诉测试单元我正在测试哪个活动(或服务,类),但变量和范围是否需要用于我需要关注的任何地方?
@Rule
public ActivityTestRule<MenuActivity> mActivityTestRule = new ActivityTestRule<>(MenuActivity.class);
答案 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();
}