我可以使用Espresso测试状态栏色调/颜色吗?

时间:2016-07-04 11:09:10

标签: android ui-testing android-espresso

我想知道是否有办法测试使用应用目标时显示的状态栏色调。我还没有找到与 Espresso 状态栏相关的UI测试信息。

enter image description here

2 个答案:

答案 0 :(得分:0)

如今这是不可能的。 Espresso仅查看您的应用程序视图,我的意思是它不能用于通知,共享意图,状态栏等。

以下是我对类似问题的回答:Espresso test for Notification to showing up

  

Espresso UI测试框架看不到实际的View。我怀疑   严重的是,您可以使用Espresso检查任何通知。

     

为此目的,使用另一个Google视图测试框架uiautomator,   这被描述为:

     
    

UI Automator是一个UI测试框架,适用于跨系统和已安装应用程序的跨应用程序功能UI测试。

  
     

在这里,您将了解如何将其与Espresso一起使用:   http://qathread.blogspot.com/2015/05/espresso-uiautomator-perfect-tandem.html

     更多信息:            

也参观:   Android Testing: UIAutomator vs Espresso

检查uiatomator提供的方法。如果您找不到,请不要犹豫,添加与code.google.com repo相关的问题。

希望它会有所帮助。

答案 1 :(得分:0)

尝试一下:

 onView(withId(android.R.id.statusBarBackground)).check(matches(withBackgroundColor(color)));

您可能需要配色器:

public static Matcher<View> withBackgroundColor(final int colorId) {
    Checks.checkNotNull(colorId);
    int colorFromResource = ContextCompat.getColor(getTargetContext(), colorId);
    return new BoundedMatcher<View, View>(View.class) {
        @Override
        public boolean matchesSafely(View view) {
            int backGroundColor = ((ColorDrawable) view.getBackground()).getColor();
            return colorFromResource == backGroundColor;
        }
        @Override
        public void describeTo(Description description) {
        }
    };
}

或者这个: getCurrentActivity()。getWindow()。getStatusBarColor();