ActivityTestRule 和 IntentTestRule 有什么区别
What is the difference between ActivityTestRule and IntentTestRule
在探索测试时,我遇到了 ActivityTestRule 和 IntentTestRule,据我所知,IntentTestRule 是 ActivityTestRule 的扩展,用于 Espresso Intents。
但核心是使用这些测试规则的真正目的是什么。
to initialize Espresso-Intents before each test annotated with @Test
and
releases Espresso-Intents after each test run. The following code snippet is an example of an IntentsTestRule
:
@Rule
public IntentsTestRule<MyActivity> intentsTestRule =
new IntentsTestRule<>(MyActivity.class);
Alternatively、
you can use ActivityTestRule
instead of IntentsTestRule
and then in
your @Before
and @After
manually call Intents.init()
and
Intents.release()
respectively.
@Override
protected void afterActivityLaunched() {
Intents.init();
super.afterActivityLaunched();
}
@Override
protected void afterActivityFinished() {
super.afterActivityFinished();
Intents.release();
}
And the purpose of Espresso-intents is
to enable validation and stubbing of Intents sent out by the
application under test. It’s like Mockito, but for Android Intents.
在探索测试时,我遇到了 ActivityTestRule 和 IntentTestRule,据我所知,IntentTestRule 是 ActivityTestRule 的扩展,用于 Espresso Intents。
但核心是使用这些测试规则的真正目的是什么。
to initialize Espresso-Intents before each test annotated with
@Test
and releases Espresso-Intents after each test run. The following code snippet is an example of anIntentsTestRule
:
@Rule
public IntentsTestRule<MyActivity> intentsTestRule =
new IntentsTestRule<>(MyActivity.class);
Alternatively、
you can use
ActivityTestRule
instead ofIntentsTestRule
and then in your@Before
and@After
manually callIntents.init()
andIntents.release()
respectively.
@Override
protected void afterActivityLaunched() {
Intents.init();
super.afterActivityLaunched();
}
@Override
protected void afterActivityFinished() {
super.afterActivityFinished();
Intents.release();
}
And the purpose of Espresso-intents is
to enable validation and stubbing of Intents sent out by the application under test. It’s like Mockito, but for Android Intents.