Android – 使用pressBack进行Espresso测试

Android – 使用pressBack进行Espresso测试,第1张

概述我正在尝试使用Espresso框架测试我的应用程序.应该测试在按下主活动时是否退出应用程序,以及在从主活动调用另一个活动然后再按下时是否显示主应用程序. public class MainActivityTest { @Rule public IntentsTestRule<MainActivity> intentsTestRule = new IntentsTestRule<>( 我正在尝试使用Espresso框架测试我的应用程序.应该测试在按下主活动时是否退出应用程序,以及在从主活动调用另一个活动然后再按下时是否显示主应用程序.

public class MainActivityTest {    @Rule    public IntentsTestRule<MainActivity> intentsTestRule = new IntentsTestRule<>(            MainActivity.class    );    @Test    public voID test_pressBack() {        try {            pressBack();            fail();        } catch (NoActivityResumedException exc) {            // test successful        }    }    @Test    public voID test_anotherActivity_pressBack() {        onVIEw(withID(R.ID.button1)).perform(click());        pressBack();        intended(hasComponent(new Componentname(getTargetContext(),MainActivity.class)));    }}

对于第一个场景(退出应用程序),我捕获NoActivityResumedException,但这似乎不是正确的方法.

对于第二种情况(返回主要活动),我得到一个意图错误:

androID.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: Wanted to match 1 intents. Actually matched 0 intents.IntentMatcher: has component: has component with: class name: is "myPackage.MainActivity" package name: an instance of java.lang.String short class name: an instance of java.lang.StringMatched intents:[]Recorded intents:-Intent { cmp=myPackage/.AnotherActivity} handling packages:[[myPackage]])
解决方法 关于第一次测试 – 你可以使用

Espresso.pressBackUnconditionally()

那不是抛出NoActivityResumedException异常.然后检查您的活动是否正在运行/在前台.

关于第二次测试:

intended(hasComponent(MainActivity::class.qualifIEdname))

适合我(Kotlin的代码).所以,基本上使用hasComponent(String classname)而不是hasComponent(Componentname componentname)

总结

以上是内存溢出为你收集整理的Android – 使用pressBack进行Espresso测试全部内容,希望文章能够帮你解决Android – 使用pressBack进行Espresso测试所遇到的程序开发问题。

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

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

原文地址:https://www.54852.com/web/1126019.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存