Использование MyApplication.context в моем фрагменте кода, который мне нужно протестировать с помощью jUnit или Roboelectric

Мне нужно протестировать функцию, которая использует MyApplication.context. Я не могу изменить код своей функции. Мне нужно протестировать эту функцию с помощью jUnit или Roboelectric.

Скажем, мне нужно проверить приведенный ниже код.

 public Context getMyContext() {
    context = MyApplication.context;
    return context;
}

Приведенный выше код находится в моем проекте, и я не могу его изменить. Как я могу подтвердить, является ли контекст нулевым или нет?

0
0
27
1

Ответы 1

Вы можете использовать это в jUnit

assertNotNull(yourObject.getMyContext());

Это дает исключение нулевого указателя в {context = MyApplication.context;}

Sagar Patil 30.05.2018 09:25

Если ваш контекст равен нулю, он выдаст исключение нулевого указателя

Dishonered 30.05.2018 09:26

Согласитесь, но каждый раз он будет давать мне нулевой указатель, даже если мой код совершенно правильный.

Sagar Patil 30.05.2018 09:27

Вы запускаете тест локально или на эмуляторе? Если вы запускаете его на JVM, он выдаст исключение. Чтобы запустить тесты, связанные с контекстом, вы должны запустить их на эмуляторе и поместить в пакет «androidTest», а не в «тестовый» пакет. Убедитесь, что вы запускаете их с @RunWith(AndroidJUnit4.class).

Dishonered 30.05.2018 09:32

Спасибо, что помогло.

Sagar Patil 30.05.2018 09:50

У меня вопрос, в чем разница между Robolectric и @RunWith (AndroidJUnit4.class)

Sagar Patil 30.05.2018 09:52

Другие вопросы по теме