android– 如何在启动Espresso测试之前准备数据库数据?

android– 如何在启动Espresso测试之前准备数据库数据?,第1张

概述DB:SQLite表:联系方式浓咖啡测试:@TestpublicvoidtestBlock(){onData(anything()).inAdapterView(withId(R.id.container_ListView)).atPosition(0).onChildView(withText(R.string.block_user)).perform(click());}并且测试成功通过.但只有在启动联系之

DB:sqlite

表:联系方式

浓咖啡测试:

@Testpublic voID testBlock() {   onData(anything()).inAdapterVIEw(withID(R.ID.container_ListVIEw)).atposition(0).onChildVIEw(withText(R.string.block_user))            .perform(click());}

并且测试成功通过.但只有在启动联系之前状态为unblock(db表中的列Status)时才会成功.所以我需要(在开始测试之前)将此联系人更新为状态解除阻止.我怎样才能做到这一点?或者有人为此提供更好的解决方案?

解决方法:

在开始活动之前,您可以在@Before方法或测试用例中执行此 *** 作.

首先,您需要将活动规则更改为:

    @Rulepublic ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(        MainActivity.class, false, false);

请注意最后一个错误标志,这表示您的活动在测试开始时不会自动启动.

然后在您的测试类中,您可以添加此方法:

 @Before     public static voID PrepareDatabase() {    // Instantiate your Service that performs an action on the database    // give it this context: InstrumentationRegistry.getTargetContext();    // For example the code Could look like this:    DatabaseHelper(InstrumentationRegistry.getTargetContext()).setYourValue();    mActivityRule.launchActivity(null); //launches the test activity}

然后通常写你的测试.此代码对您的数据库执行某些 *** 作,然后启动您的测试活动.您也可以将其传递给测试方法而不是@Before方法.

总结

以上是内存溢出为你收集整理的android – 如何在启动Espresso测试之前准备数据库数据?全部内容,希望文章能够帮你解决android – 如何在启动Espresso测试之前准备数据库数据?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存