我有一个抽象的服务:
abstract class ParentService {
abstract Map someMethod() throws NumberFormatException
}
另一项服务超越了课程:
class ChildService extends ParentService {
@Override
Map someMethod() throws NumberFormatException {
//Business Logic
}
}
我想使用groovy metaClass来模拟someMethod()
。我需要模拟这个方法来编写ChildService
的测试用例。这就是我为嘲笑所做的事情:
ChildService.metaClass.someMethod = { -> "Mocked method" }
但这不起作用,并且调用始终从服务执行实际方法。这需要做什么?我错过了什么吗?
请注意,我必须模拟一种方法而不是整个服务。
答案 0 :(得分:0)
也许你只能在实例上模拟方法?
def child = new ChildService()
child.metaClass.someMethod = { -> "Mocked method" }