我有一個應用程序與幾個活動與列表視圖,第一個列表視圖的選擇決定第二個列表視圖的內容,第二個列表視圖決定第三個的內容等。使用Robotium與意圖
我想測試第三個列表視圖,但因爲它需要一個意圖列表不返回任何內容。爲了解決這個問題,我可以手動添加意圖的測試,是否意味着它的工作原理
public InspectionListActivityTest() {
super(InspectionListActivity.class);
Intent i = new Intent();
i.putExtra("guid", "abcbbf2b-5e14-4cb1-af1b-e3084b45d4cf");
setActivityIntent(i);
}
正如你可以從代碼中看到,它使用GUID來確定列表這是我想要的東西,以避免 - 我清除數據庫很多,而我正在測試,所以我必須一直改變這個領域。
理想我想使用一個ContentResolver的獲得首先從另一臺則這將意味着我將能夠隨時拉回來的信息在我的測試GUID,請即
public InspectionListActivityTest() {
super(InspectionListActivity.class);
ContentResolver cr = getActivity().getContentResolver();
Cursor cursor = cr.query(Locations.CONTENT_URI, null, null, null, null);
if (cursor != null) {
if (cursor.moveToFirst()) {
String guid = cursor.getString(cursor.getColumnIndex(Locations.GUID));
Intent i = new Intent();
i.putExtra(IntentFilters.LOCATION.getIntent(), guid);
setActivityIntent(i);
}
}
}
不過,我得到一個NullPointerException在getActivity()方法上,我似乎無法將此setActivityIntent放在其他任何地方。
謝謝,現在唯一的問題是如果我將它全部移到setup(),那麼活動意圖需要在第一次調用getActivity()之前設置(請參閱http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase2。 html#setActivityIntent(android.content.Intent))但我需要getActivity()來獲得ContentResolver,除非有另一種方式...? – 2013-03-26 10:24:01
您可以使用http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase2.html#setActivityIntent(android.content.Intent) – Snicolas 2013-03-26 13:45:34