Насмешки/заглушки финальных классов в Android

Я пытаюсь создать автоматические тесты для Android, которые будут эмулировать связь Bluetooth.

Mockito и DexMaker работают нормально, но не в этом случае, поскольку значительная часть API Bluetooth состоит из конечных классов, которые Mockito не может ни издеваться, ни шпионить. Это привело меня к комбо PowerMock + Mockito, которое должно работать с private/final/static, но AFAIK и видел, что оно не подходит для Android (без использования DexMaker).

Есть ли какое-нибудь решение для имитации финальных классов на Android? Было бы здорово, если бы тесты можно было запускать на реальных устройствах и эмуляторе.


person vbokan    schedule 24.12.2013    source источник


Ответы (1)


Вы пробовали PowerMock? Вы можете издеваться над чем-то на Android, включая заключительные классы.

person Vidya    schedule 24.12.2013
comment
Это одна вещь, которую я пытаюсь избежать, поскольку она не работает на устройстве. Я пытаюсь максимально эмулировать связь Bluetooth с помощью платформы Android. Выполнение этого так, как вы предложили, вероятно, означает, что я имею дело со значительным количеством издевательств. Я искал возможность запустить тест на устройстве как обычный проект AndroidTest с PowerMock, предоставляющим шпион для конечных классов, чтобы я мог просто издеваться над теми вызовами, которые мне нужны для эмуляции. Таким образом, я мог получить как можно более реалистичный тест на общение. - person vbokan; 25.12.2013