У меня есть приложение, которое использует ContentProvider для обслуживания данных вместо прямого доступа к базе данных. Приложение работает как ожидалось, но у меня проблема с модульными тестами: как заставить ContentProvider использовать тестовую базу данных, а не «живую»? Если бы я не использовал ContentProvider я мог передать другое имя базы данных конструктору моего SQLiteOpenHelper
sublass, но теперь база данных создается с помощью вызова OnCreate() в моем ContentProvider:Тестирование устройств Android с помощью ContentProviders и баз данных
@Override
public boolean onCreate()
{
UKMPGDataProvider.init(getContext(), Constants.DATABASE_NAME);
return (UKMPGDataProvider.getWritableDatabase() == null) ? false : true;
}
Как вы можете см., имя базы данных жестко запрограммировано.
Есть ли способ передать тестовое имя в ContentProvider?
Итак, с ProviderTestCase2, возможно ли мне протестировать поведение MyListContactActivity, не вникая в настоящий Android-контент ContentProvider? У вас есть какой-либо рабочий код тестирования? – sancho21