使用groovy来模拟包装类

时间:2009-06-18 16:13:43

标签: unit-testing groovy mocking

我目前正在尝试重新编写包含现有类的代码的单元测试。我正在寻找的函数的代码如下所示......

private OldObject oldObject
...
public Boolean method(){
  Boolean returnValue = false
  if(oldObject.method(100)){
    returnValue = true  
  }
  if(oldObject.method(101)){
    returnValue = true
  }
}

我考虑过使用metaClass,比如OldObject.metaClass.method {return true},但我不确定如何在下次测试之前删除它。

任何人都有这种情况的最佳做法/帮助吗?

1 个答案:

答案 0 :(得分:0)

要模拟方法,请使用:

OldObject.metaClass.method = {return true}

请注意,这将模拟OldObject的所有实例的方法,但也可以仅为单个实例模拟该方法。如果要删除模拟方法,只需将metaClass设置为null:

OldObject.metaClass = null

我认为你需要至少使用Groovy 1.6来实现这个目的。