Android系统。浓咖啡。如何在自定义适配器中测试自定义视图?

时间:2014-01-24 15:39:21

标签: android unit-testing android-listview android-adapter android-espresso

我在项目中使用Espresso库。在教程和示例中有示例如何测试适配器和视图。但我有自定义适配器和自定义特定视图。 我的观点:

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

<TextView
    android:id="@+id/tvCity"
    style="@style/Widget.TextView.OnlyOneLine"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="@dimen/ab_city_spinner_inner_padding"
    android:text="Test"
    android:textColor="@color/ab_city_spinner_city_text"
    android:textSize="@dimen/ab_city_spinner_city_text_size" />

<TextView
    android:id="@+id/tvRegion"
    style="@style/Widget.TextView.OnlyOneLine"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="@dimen/ab_city_spinner_inner_padding"
    android:text="Test"
    android:textColor="@color/ab_city_spinner_region_text"
    android:textSize="@dimen/ab_city_spinner_region_text_size" /></LinearLayout>

我的测试:

@SmallTest
public void testChangeCity()
{
    onView(withId(R.id.spAB)).perform(ViewActions.click());
    onView(allOf(withText("City1"), hasSibling(withText("Test")))).perform(ViewActions.click());
}

这是工作。但我现在没有数据有什么看法。我可以打开Spinner并单击项目吗?

1 个答案:

答案 0 :(得分:3)

我找到答案。 查找并单击Spinner

Espresso.onView(ViewMatchers?.withId(R.id.spAB)).perform(ViewActions?.click());

获取Spinner的数据

List<City> listCity = getActivity().getCityList();

检查数据

Preconditions.checkNotNull(listCity, "No have any city");

点击它查看

ViewMatchers?.hasSibling(ViewMatchers?.withText(listCity.get(0).getName())))).perform(ViewActions?.click());