Модульное тестирование Android с ContentProviders и базами данных - PullRequest
1 голос
/ 30 декабря 2011

У меня есть приложение, которое использует ContentProvider для обслуживания данных вместо прямого доступа к базе данных.Приложение работает должным образом, но у меня есть проблема с модульными тестами: как я могу заставить ContentProvider использовать тестовую базу данных, а не «живую»?Если бы я не использовал ContentProvider, я мог бы передать другое имя базы данных Конструктору моего подкласса SQLiteOpenHelper, но теперь база данных создается с вызовом onCreate () в моем ContentProvider:

    @Override
public boolean onCreate()
{
    UKMPGDataProvider.init(getContext(), Constants.DATABASE_NAME);
    return (UKMPGDataProvider.getWritableDatabase() == null) ? false : true;
}

Как видите, имя базы данных жестко закодировано.

Есть ли способ передать имя теста в ContentProvider?

Ответы [ 2 ]

0 голосов
/ 05 января 2012

После небольшого копания я обнаружил, что расширение ProviderTestCase2 автоматически добавит префикс в базу данных.

0 голосов
/ 30 декабря 2011

Вы должны использовать шаблон внедрения зависимостей , чтобы обойти это

...