Мне кажется, что создание Activity unit test с утилитами жизненного цикла Robolectric (начиная с Robolectric.buildActivity()) и шпионаже в отношении одной и той же операции с шпионами Mockito являются взаимоисключающими.
Поскольку buildActivity() управляет конструкцией объекта Activity, единственным местом для добавления шпиона для Activity является вызов buildActivity(). Однако шпион не работает должным образом, когда он добавляется после факта.
Это особенно верно при шпионаже за побочными эффектами методов жизненного цикла ActivityController, таких как create(), start() и resume(). Я предполагаю, что это происходит потому, что ActivityController содержит ссылку на "реальный" объект Activity, а не на шпион, который был добавлен позже.
Итак, есть ли способ отслеживать действие, которое тестируется с помощью Robolectric, так что шпион работает правильно при вызове методов жизненного цикла через Robolectric ActivityController?