У меня есть приложение с несколькими действиями со списками, выбор из первого списка отображает содержимое второго списка, а второй вид списка определяет содержимое третьего и т. Д.Использование 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, если нет другого пути ...? –
Вы можете использовать http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase2.html#setActivityIntent(android.content.Intent) – Snicolas