2014-01-14 4 views
2

У меня есть OrmLiteBaseActivity и в onCreate() этой деятельности я прочитал некоторые данные из базы данных. В зависимости от прочитанных данных я изменяю видимость некоторых видов.Mocking ormlite database

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

Любые идеи, советы, примеры или что-нибудь еще, что поможет мне приветствуется :)

ответ

2

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

Все вещи базы данных приводится в движение внутренне ORMLite с 4-мя интерфейсами:

  • ConnectionSource, которая дает соединения с базой данных
  • DatabaseConnection, которая представляет собой соединение
  • CompiledStatement, которая представляет собой скомпилированный SQL выписка
  • DatabaseResults, которая дает доход от CompiledStatement.runQuery()

Когда вы строите свои объекты DAO, вы передаете в ConnectionSource реализации, что дает DatabaseConnection с, и т.д .. Вы можете использовать определенный EasyMock или какой-нибудь конкретный класс издеваться эти 4 интерфейса. Это немного сложно сделать, но это можно сделать.

Модульные тесты для ORMLite довольно обширны. Для некоторых частных примеров, которые Вы можете посмотреть по адресу:

  • FieldTypeTest.testForeignAutoRefresh() - это показывает насмешки в ConnectionSource и DatabaseConnection, но не идут все пути к DatabaseResults.
  • TableUtilsTest.testStatement() - он показывает сложное издевательство DatabaseConnection, CompiledStatement и DatabaseResults.
  • H2CompiledStatement and other classes в этой тестовой упаковке. Это тестовый код, который ORMLite использует для тестирования различных операций с базой данных. H2 ++.