有人可以教我如何测试下面的示例代码吗?
如何为此编写浓缩咖啡测试?由于不需要视图操作?
public class SampleActivity extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
}
}
我想测试活动是否实际启动。请帮我。预先感谢。
这已经多次回答:
- 从测试执行时获得活动:
如何检查新活动是否
- 使用
espresso-intents
Artifact(首选选项(:
如何验证是否打开正确的活动-pespresso
请记住,IntentsTestRule
的使用可能在这里有问题,它在启动活动后用来调用Intents.init()
,这将为时已晚,因为您已经进入了新活动。不确定此行为是否仍然存在,但是您可以通过在测试类的@Before
手动调用init()
来解决此问题,请不要忘记在拆卸中进行Intents.release()
带有意见的示例。要键(应该在启动之前(:
@get:Rule
var mActivityTestRule = ActivityTestRule(LoginActivity::class.java, false, false)
@Before
fun before() {
Intents.init()
}
@After
fun after() {
Intents.release()
}
@Test
fun whenStartWithUser_shouldOpenHomeScreen() {
val matcherIntent = hasComponent(HomeActivity::class.java.name)
Intents.intending(matcherIntent).respondWith(Instrumentation.ActivityResult(Activity.RESULT_OK, null))
mActivityTestRule.launchActivity(Intent())
Intents.intended(matcherIntent)
}
阅读有关Log
和Logcat
的文档。您可以跟踪那里发生的所有动作。