Уже есть вопрос об этой "неизвестной ошибке (код 14)", которую я продолжаю получать в моем простом junit.framework.TestCase
, но ни один из них не помог мне.
Моя проблема в том, что модульный тест не будет запущен, поскольку контрольно-измерительные приборы не могут открыть базу данных. Часть соответствующего кода:
//Using getInstrumentation().getTargetContext() works, but real DB is used!
context = InstrumentationRegistry.getInstrumentation().getContext();
db = new SoulissDBHelper(context);
db.createWriteableDatabase();// <--breaks
Кажется, проблема связана с ложным контекстом, возвращаемым Instrumentation
, поскольку с использованием getTargetContext()
все работает, как ожидалось даже, в этом случае в тестах используется производственная база данных , что недопустимо.
Я недавно мигрировал на новый androidx
бегунок, поэтому найденная документация, связанная с junit, часто является неточной / устаревшей, и это довольно сложнонайти обновленный документ / примеры. Аналогичным образом, многие @RunWith(AndroidJUnit4.class)
связанные вопросы не применимы. Мой целевой SDK установлен на 28, другие тесты работают как положено.
Пожалуйста, помогите мне выполнить мой тест на постоянство для отдельной базы данных . Миграция в комнату на данный момент не осуществима / не запланирована, и я бы с удовольствием избежал добавления других зависимостей