Настройка базы данных перед инициализацией Activity при написании тестов - PullRequest
0 голосов
/ 03 февраля 2012

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

Проблема, чтобы настроить базу данных, мне нужен контекст, и единственный способ узнать, как получить контекст, - это вызвать getActivity (), но затем он прочитает базу данных до того, как будет настроена активность.

Итак, используя подкласс ActivityInstrumentationTestCase2, возможно ли настроить базу данных перед инициализацией действия?

Псевдо-экзамен того, что я хотел бы сделать.

public void testActivityWithDatabaseEmpty(){
  //Setup database
  SQLLiteDatabase myDb = getDatabase(); // how to do this in a test without first calling the activity?
  emptyTestTable(myDb);

  //Setup intent
  Intent intent = getIntentWithNonExistingKey();
  setActivityIntent(intent);

  //Get activity
  MyActivity activity = getActivity();
  Button button = activity.findById(R.id.button);
  assertAreEquals("", button.getText);
}

Заранее спасибо Роланд

1 Ответ

1 голос
/ 09 февраля 2012

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

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