Android Espresso UI 测试中 @Rule 的用途是什么?
What is the purpose of @Rule in Android Espresso UI Test?
新手 Android 使用 Espresso 进行单元测试,在 @Rule 下,创建成员变量的目的是什么?变量的名称重要吗?我知道我需要告诉测试单元我正在测试哪个 activity(或服务,class),但是变量及其范围是否在我需要关心的任何地方使用?
@Rule
public ActivityTestRule<MenuActivity> mActivityTestRule = new ActivityTestRule<>(MenuActivity.class);
在使用 Espresso 测试 Android UI 进行更多练习和研究后,获得了 @Rule 变量的许多用例。其中包括测试空闲资源(将发生异步的视图和数据)。使用 ActivityTestRule 对象(例如 mActivityTestRule),我可以引用资源,在 class 中触发带有 @VisibleForTesting 标签的 public 方法。
例如。
// 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();
}
新手 Android 使用 Espresso 进行单元测试,在 @Rule 下,创建成员变量的目的是什么?变量的名称重要吗?我知道我需要告诉测试单元我正在测试哪个 activity(或服务,class),但是变量及其范围是否在我需要关心的任何地方使用?
@Rule
public ActivityTestRule<MenuActivity> mActivityTestRule = new ActivityTestRule<>(MenuActivity.class);
在使用 Espresso 测试 Android UI 进行更多练习和研究后,获得了 @Rule 变量的许多用例。其中包括测试空闲资源(将发生异步的视图和数据)。使用 ActivityTestRule 对象(例如 mActivityTestRule),我可以引用资源,在 class 中触发带有 @VisibleForTesting 标签的 public 方法。
例如。
// 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();
}