Мне нужно протестировать функцию, которая использует MyApplication.context. Я не могу изменить код своей функции. Мне нужно протестировать эту функцию с помощью jUnit или Roboelectric.
Скажем, мне нужно проверить приведенный ниже код.
public Context getMyContext() {
context = MyApplication.context;
return context;
}
Приведенный выше код находится в моем проекте, и я не могу его изменить. Как я могу подтвердить, является ли контекст нулевым или нет?
Вы можете использовать это в jUnit
assertNotNull(yourObject.getMyContext());
Если ваш контекст равен нулю, он выдаст исключение нулевого указателя
Согласитесь, но каждый раз он будет давать мне нулевой указатель, даже если мой код совершенно правильный.
Вы запускаете тест локально или на эмуляторе? Если вы запускаете его на JVM, он выдаст исключение. Чтобы запустить тесты, связанные с контекстом, вы должны запустить их на эмуляторе и поместить в пакет «androidTest», а не в «тестовый» пакет. Убедитесь, что вы запускаете их с @RunWith(AndroidJUnit4.class).
Спасибо, что помогло.
У меня вопрос, в чем разница между Robolectric и @RunWith (AndroidJUnit4.class)
Это дает исключение нулевого указателя в {context = MyApplication.context;}