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