Android Robotium-错误测试列表视图

时间:2014-03-10 04:35:09

标签: android robotium

您好我有一个简单的列表视图我想测试 每个listview的行都在下面的xml文件中表示

<?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="horizontal"
 > 

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
>
    <TextView
        android:id="@+id/id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:textColor="#F87217"
        android:textStyle="bold"
    />

    <TextView
        android:id="@+id/cluster"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12sp"

    />
    <TextView
        android:id="@+id/school"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12sp"

    />
    <TextView
        android:id="@+id/level"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12sp"

    />
    <TextView
        android:id="@+id/size"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12sp"

    />
    </LinearLayout>
    </LinearLayout>

所以我写了一个简单的测试代码 测试textview的每一行内的listview 但是,我甚至在textview

的第二行内检索listview时出错
    public class bookLocker2Test extends 

     ActivityInstrumentationTestCase2<TabMainActivity>   

      {
private Solo solo;
private Button allSchoolsButton;
private Button viewLockerButton;

  public bookLocker2Test() {

      super(TabMainActivity.class);
  }

  public void setUp() throws Exception {
        solo = new Solo(getInstrumentation(), getActivity());
        allSchoolsButton = (Button) solo.getCurrentActivity().findViewById(
                com.example.mobilelog6.R.id.btnSoesoss);
        viewLockerButton = (Button) solo.getCurrentActivity().findViewById(
                com.example.mobilelog6.R.id.btnView);

  }


@Override
public void tearDown() throws Exception {
     solo.finishOpenedActivities();
}

public void test(){

    solo.assertCurrentActivity("wrong activity", TabMainActivity.class);


}
public void testButtonClick() {
    solo.clickOnText("Search/Book Lockers");
    solo.clickOnButton("SOE/SOSS");
    solo.clickOnButton("View Locker Selection");



    solo.waitForActivity(PopulateLockerList.class);

    solo.assertCurrentActivity("wrong activity2", PopulateLockerList.class);

    //solo = new Solo(getInstrumentation());
    //ListView mListView = (ListView) 

        solo.getCurrentActivity().findViewById(R.id.listViewLockers);
    ListView mListView = (ListView) solo.getView(R.id.listViewLockers);
    assertNotNull("ListView not allowed to be null",mListView);

        int expectedCount = 10;
        int actualCount = mListView.getAdapter().getCount();
        assertEquals(expectedCount, actualCount);

        ListView l = ( ListView )solo.getCurrentActivity().findViewById(
                com.example.mobilelog6.R.id.listViewLockers);


        assertNotNull("No list views!", l);

        View v = l.getChildAt(1);

        TextView txt =(TextView)v.findViewById(R.id.cluster);


        String abc = txt.toString();
        assertEquals("Incorrect label of the listview 1", "SIS-2-1-102", abc);




      }



         }

我收到错误消息:

junit.framework.ComparisonFailure: Incorrect label of the listview 1 expected:<[SIS-2-1-102]> but was:<[android.widget.TextView@4348a808]>

在这一行:

assertEquals("Incorrect label of the listview 1", "SIS-2-1-102", abc);

请帮助
我应该获得string而不是android.widget.TextView@4348a808

2 个答案:

答案 0 :(得分:0)

可能你应该改变这一行

assertEquals("Incorrect label of the listview 1", "SIS-2-1-102", abc);

有了这个:

assertEquals("Incorrect label of the listview 1", "SIS-2-1-102", abc.equals("SIS-2-1-102"));

答案 1 :(得分:0)

该行:

String abc = txt.toString();

没有做你想做的事情,它将TextView对象转换为字符串而不是textview的内容。你想要的是:

String abc = txt.getText().toString();