我目前正在尝试重新编写包含现有类的代码的单元测试。我正在寻找的函数的代码如下所示......
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},但我不确定如何在下次测试之前删除它。
任何人都有这种情况的最佳做法/帮助吗?
答案 0 :(得分:0)
要模拟方法,请使用:
OldObject.metaClass.method = {return true}
请注意,这将模拟OldObject的所有实例的方法,但也可以仅为单个实例模拟该方法。如果要删除模拟方法,只需将metaClass设置为null:
OldObject.metaClass = null
我认为你需要至少使用Groovy 1.6来实现这个目的。