Модульное тестирование Android и использование другого файла базы данных - PullRequest
1 голос
/ 30 марта 2010

Я пытаюсь запустить модульное тестирование своего приложения (должно было сделать это с самого начала). У меня настроена структура проекта Eclipse, и кажется, что все работает хорошо, но ...

Я создаю подклассы SQLiteOpenHelper для доступа к базе данных приложения. Это хорошо работает для приложения, но при использовании того же класса в модульных тестах он записывает в ту же базу данных, что и реальное приложение . Это, очевидно, довольно раздражает, поскольку данные модульных тестов обнаруживаются при разработке и тестировании реального приложения.

Какой лучший способ заставить класс SQLiteOpenHelper записывать в другой файл базы данных при вызове из модульных тестов?

Ответы [ 3 ]

2 голосов
/ 30 марта 2010

Если у вас нет проблем с добавлением некоторых строк кода в исходную программу, вы также можете добавить переменную класса и соответствующие методы getter и setter в свой подкласс Application, определяя, находитесь ли вы в режиме тестирования или нет. Ваш класс модульного теста может затем получить доступ к методу установки и установить тестирование на «истина». В том месте кода, где определена ваша база данных, вы получите доступ к методу получения, чтобы решить, какую базу данных взять.

2 голосов
/ 30 марта 2010

Вы можете использовать библиотеку EasyMock на easymock.org , чтобы высмеивать подкласс SQLiteOpenHelpers и его методы.

0 голосов
/ 02 мая 2012

Чтобы избежать необходимости вносить много изменений в мои исходные классы, я выполняю резервное копирование файла базы данных (используя copyFile) в начале каждого теста, очищая его / вставляя правильные значения, а затем восстанавливая резервную копию файла базы данных. после того, как тест сделан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...