Я пытаюсь провести юнит-тестирование абстрактного класса, поэтому мне нужно предоставить имитационную реализацию абстрактных методов класса.
Я думаю, что я нахожусь в нишевой ситуации (!), Поскольку ни @Mock
или @Spy
, кажется, помогают.
- пробовал
Mockito.mock(SimpleClient.class, Mockito.CALLS_REAL_METHODS)
, но это полностью разрушает мой абстрактный класс (создает его без вызова конструктора и запуска в NPE) - пытался
@Spy
но для этого требуется либо экземпляр реального класса (который я не могу предоставить, поскольку он абстрактный duh), либо он попытается вызвать конструктор без аргументов, который не существует.
(Контекст, хотя вам это не нужно: класс является клиентом обмена сообщениями, например, имеет методы sendMessage()
и abstract onMessage()
, и, очевидно, мне нужно использовать реальную реализацию sendMessage()
и смоделировать обратный вызов abstract onMessage()
)