您好我正在尝试运行一个执行代码块的单元测试,如果构建版本是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>
答案 0 :(得分:1)
根据此处的解释(https://github.com/robolectric/robolectric/issues/277),您在JVM上运行,这可能是 Robolectric 根据模拟SDK不改变此常量的原因。这实际上很奇怪。
但显然,在该线程中还有解决方法如何测试它:
ReflectionHelpers.setStaticField(Build.VERSION.class, "SDK_INT", 18);