
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测试所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)