2009-06-18 39 views
0

我目前正試圖回顧並編寫一些包裝現有類的代碼的單元測試。我曾經想過用的metaClass,像OldObject.metaClass.method我要尋找具有代碼看起來像下面的功能...使用groovy來模擬包裝類

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

{返回true},但我不知道如何刪除這在下次測試之前。

任何人都有這種情況的最佳做法/幫助?

回答

0

嘲笑的方法使用:

OldObject.metaClass.method = {return true} 

注意,這會嘲笑方法的OLDobject的所有實例,但它也可以嘲笑的方法只是一個實例。當你要刪除的嘲笑方法只需設定元類空:

OldObject.metaClass = null 

我認爲你需要使用這個至少Groovy 1.6中工作。