У меня есть абстрактный сервис:Groovy метакласса, насмехаясь методом обслуживания, который имеет броски пункта
abstract class ParentService {
abstract Map someMethod() throws NumberFormatException
}
И еще один сервис, который простирается выше класс:
class ChildService extends ParentService {
@Override
Map someMethod() throws NumberFormatException {
//Business Logic
}
}
Я хочу издеваться someMethod()
с помощью заводного метакласса , Мне нужно высмеять этот метод для написания тестовых примеров для ChildService
. Это то, что я сделал для насмешки:
ChildService.metaClass.someMethod = { -> "Mocked method" }
Но это не работает, и вызов всегда выполняет фактический метод из службы. Что нужно сделать здесь? Я что-то упускаю?
Обратите внимание, что я должен высмеивать только один метод, а не весь сервис.
Я тоже пробовал, но не повезло. – UjjawalG
Я попытался воспроизвести его, и он работал, поэтому причина, по которой он не работает, должен быть где-то еще. Можете ли вы показать весь свой метод тестирования? Вы также можете попытаться изменить «Mocked method» на карту. Может быть, он не работает из-за несоответствия типа возврата? –