Организация кода Android вокруг доступа к БД - PullRequest
1 голос
/ 18 июля 2011

Некоторая предыстория моей организации кода приложений:

В данный момент я использую специальную ORM для доступа к БД, где каждая таблица разбита на модель (просто простой класс Java ненаследование от любых компонентов Android), которая охватывает обычные операции CRUD.Я не использую контент-провайдера, так как все эти данные являются частными для приложения.

Я храню один экземпляр моего databaseopenhelper и контекст приложения в классе приложения моего приложения

class MyApplication extends Application {
  private static Context mContext;

  @Override
  public void onCreate() {
    super.onCreate();
    mContext = this;
    dbHelper = new DatabaseHelper(this); // Subclass of SQLiteOpenHelper
  }

  public static Context getContext(){
    return mContext;
  } 

Все действия, которые касаются БД, открывают базу данных onResume и закрывают ее onPause.

Это работало нормально, пока я не начал модульное тестирование, когда столкнулся с первой проблемой с использованием синглетонов - нарушением инкапсуляцииопределенно не в состоянии использовать RenamingDelegatingContext для тестирования с конкретной тестовой базой данных)не могу придумать лучшего способа сделать это (если не считать передачи контекста и dbhelpers явно - что является болью)

2) Если это не совсем сумасшедшая идея, какой будет лучший путь?о модульном тестировании этой настройки?

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