У меня есть приложение, которое хранит информацию о приложении. Информация контекста приложения делится между действиями в классе MyApp, который расширяет класс Application.
Я пишу unit test для своей активности, и я хочу проверить, что, когда пользователь нажимает кнопку в действии, состояние приложения будет меняться. Что-то вроде этого:
@Override
public void onClick(View pView) {
((MyApp)getApplicationContext()).setNewState();
}
Проблема в том, что я не знаю, как издеваться над этим контекстом приложения. Я использую ActivityUnitTestCase в качестве базы тестового примера. Когда я вызываю setApplication, он изменяет значение члена mApplication класса Activity, но не контекст приложения. Я также попробовал setActivityContext, но он кажется неправильным (это не контекст приложения, а контекст активности), и он запускает assert внутри startActivity).
Итак, вопрос в том, как сделать mock getApplicationContext()?