有一种简单的方法来存根groovy类的所有方法吗?在我的一个测试中,我需要确保某个代码路径根本不接触服务。
也就是说,我想模仿这样的每个方法:
[meth1: {-> fail(msg)},
meth2: {-> fail(msg)...}] as MyService
是否有一种简单的方法来存根和拦截所有参数类型的所有方法并执行这样的统一操作?
答案 0 :(得分:5)
我能想到的最简单的方法就是这样:
MyService.metaClass.invokeMethod { String name, args ->
assert false
}
答案 1 :(得分:2)
如果MyService
是一个界面,您可以这样做:
MyService stub = {Object[] args -> fail(msg)} as MyService
当MyService
是一个类