使用any()时出错;在Android测试中需要不兼容的类型:Matcher发现:Matcher

使用any()时出错;在Android测试中需要不兼容的类型:Matcher发现:Matcher,第1张

概述我运行下面的代码并返回任何错误();error:incompatibletypesrequired:Matcher<View>found:Matcher<Object>/***PerformactionofwaitinguntilUIthreadisfree.<p/>E.g.:onView(isRoot()).perform(waitUntilIdle());*@return*

我运行下面的代码并返回任何错误();

error: incompatible typesrequired: Matcher <VIEw>found:    Matcher <Object>/**      * Perform action of waiting until UI thread is free. <p/> E.g.: onVIEw(isRoot()).perform(waitUntilIDle());     * @return     */    public static VIEwAction waitUntilIDle(){      return new VIEwAction(){        @OverrIDe public Matcher<VIEw> getConstraints(){          return anything();        }        @OverrIDe public String getDescription(){          return "wait until UI thread is free";        }        @OverrIDe public voID perform(    final UiController uiController,    final VIEw vIEw){          uiController.loopMainThreadUntilIDle();        }      }    ;    }

有任何想法吗?

解决方法:

anything()不是通用方法,因此您将始终获得Matcher< Object>.

内部的任何东西()都使用IsAnything类.您可以创建自己的anyVIEw()方法以返回Matcher< VIEw>.

public static VIEwAction waitUntilIDle(){    return new VIEwAction(){        @OverrIDe public Matcher<VIEw> getConstraints(){            return anyVIEw();        }        @NonNull        private Matcher<VIEw> anyVIEw() {            return new IsAnything<>();        }        @OverrIDe public String getDescription(){            return "wait until UI thread is free";        }        @OverrIDe public voID perform(    final UiController uiController,    final VIEw vIEw){            uiController.loopMainThreadUntilIDle();        }    }            ;}
总结

以上是内存溢出为你收集整理的使用any()时出错;在Android测试中需要不兼容类型:Matcher发现:Matcher全部内容,希望文章能够帮你解决使用any()时出错;在Android测试中需要不兼容的类型:Matcher发现:Matcher所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存