您好我有一个简单的列表视图我想测试 每个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
答案 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();