对常规课的所有方法进行拼写?

时间:2011-05-10 13:56:18

标签: testing grails groovy mocking stub

有一种简单的方法来存根groovy类的所有方法吗?在我的一个测试中,我需要确保某个代码路径根本不接触服务。

也就是说,我想模仿这样的每个方法:

[meth1: {-> fail(msg)},
 meth2: {-> fail(msg)...}] as MyService

是否有一种简单的方法来存根和拦截所有参数类型的所有方法并执行这样的统一操作?

2 个答案:

答案 0 :(得分:5)

我能想到的最简单的方法就是这样:

MyService.metaClass.invokeMethod { String name, args ->
  assert false
}

答案 1 :(得分:2)

如果MyService是一个界面,您可以这样做:

MyService stub = {Object[] args -> fail(msg)} as MyService

MyService是一个类

时,我不确定这是否有效