Я пишу UnitTest для метода, который получает Handler в качестве параметра, выполняет некоторую работу и в конце использует android.os.Message, как показано ниже:
Message m = Message.obtain(handler, code, payload)
m.sendToTarget()
Этот код работает как задумано во время выполнения, но при запуске в модульном тесте он вызывает исключение NullPointerException при вызове sendToTarget.
Если я создаю сообщение с доступным общедоступным (но не рекомендованным Javadoc) конструктором, например:
Message m = new Message();
m.setTarget(handler);
m.what = code;
m.obj = payload;
все работает как положено без NullPointerException.
Что не так со статическим фабричным методом Message.obtain(...)
в модульных тестах? Есть ли что-то, что я должен сделать по-другому, чтобы иметь возможность использовать рекомендованный способ получения сообщения из пула вместо создания нового.