Robolectric单元测试build.os版本返回错误?

时间:2016-05-31 14:42:15

标签: android unit-testing robolectric

您好我正在尝试运行一个执行代码块的单元测试,如果构建版本是23或更高但是当我调用Build.VERSION.SDK_INT时它总是返回1?

这是单元测试代码:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/nom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/email2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

1 个答案:

答案 0 :(得分:1)

根据此处的解释(https://github.com/robolectric/robolectric/issues/277),您在JVM上运行,这可能是 Robolectric 根据模拟SDK不改变此常量的原因。这实际上很奇怪。

但显然,在该线程中还有解决方法如何测试它:

ReflectionHelpers.setStaticField(Build.VERSION.class, "SDK_INT", 18);