Можно ли с помощью Mockito и, при необходимости, Powermock имитировать суперкласс S
, чтобы любые вызовы суперкласса S
(включая вызовы S()
] конструктор) высмеиваются? Итак, используя приведенный ниже пример, если я заменю S
на MockS
с помощью Mockito, будет ли вызов super()
использовать конструктор в MockS
?
class S {
S() {
// Format user's hard drive, call 911, and initiate self-destruct
}
}
class T extends S {
T() {
super();
}
}
class Test {
@Mock private S mockS;
new T(); // T's call to super() should call the mock, not the destructive S.
}
Я видел вопросы об имитации отдельных методов в S
или имитации только вызовов super()
и читал, что это не поддерживается, но неясно, действительно ли я может издеваться над всем суперклассом.
В моих текущих тестах, когда я пытаюсь имитировать S
, вызов T
к super()
вызывает реальную реализацию, а не макет.