繁体   English   中英

如果启动了Acitivy,如何在Android中进行浓缩咖啡测试

[英]How to Espresso Test in Android If an Acitivy was Started

有人可以教我如何测试以下示例代码吗?

我该如何为此编写浓缩咖啡测试? 既然不需要查看操作?

public class SampleActivity extends AppCompatActivity {
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        Intent intent = new Intent(this, NextActivity.class);
        startActivity(intent);
    }
}

我想测试活动是否真正开始。 请帮我。 提前致谢。

这已被多次回答:

  1. 从在执行测试时获得活动:

如何检查新活动是否已开始

  1. 关于意式espresso-intents制品的用法(首选选项):

如何验证是否打开了正确的活动-Espresso

请记住,这里使用IntentsTestRule可能会出现问题,它在您启动活动后曾经调用Intents.init() ,因为您已经在新活动中,所以为时已晚。 不知道这种行为是否仍然存在,但是您可以通过在测试类的@Before方法中手动调用init()来解决此问题,请不要忘记在拆解中执行Intents.release()

Intents.intending的示例(应该在启动之前):

@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)
}

阅读有关LogLogcat的文档。 您可以跟踪在那里发生的所有动作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM