SignatureValidator.validate(...)
- это метод stati c, а не метод экземпляра; так что рассматриваемое утверждение:
doThrow(SignatureException.class).when(mockValidator).validate(mockSignature,mockCredential);
эквивалентно следующему:
doThrow(SignatureException.class).when(mockValidator);
SignatureValidator.validate(mockSignature,mockCredential);
, и я думаю, вы можете понять, почему это «незавершенная заглушка».
(Это к сожалению, Java даже позволяет вам писать <i>instance</i>.<i>staticMethod</i>(...)
вместо <i>ClassName</i>.<i>staticMethod</i>(...)
, поскольку первый вводит в заблуждение. Некоторые компиляторы предупреждают вас об этом.)
Для получения информации о том, как высмеивать stati c методы, см. этот вопрос переполнения стека: Пересмешивание c методы с помощью Mockito .