2011-02-24 38 views
0

我目前正在學習grails,並在測試中通過the guide工作。瞭解Grails測試中的metaClass

有提供一個例子,其覆蓋在一個虛構的BookController寫這段代碼測試:

def show = { 
    [ book : Book.get(params.id) ] 
} 

導向提出了嘲笑出params.id結果以下方法:

void testA() { 
    BookController.metaClass.getParams = {-> [id:10] } 
} 

由於這是對BookController的靜態定義的更改,它是否在測試之間持續存在,或者Grails魔術是否會自動清除tearDown方法?

也就是說,如果我是寫一個後續的測試跳過metaClass.getParams設置和testA後跑,會params.id還是回到10

如果是這樣,在測試拆卸中清理的標準grails實踐是什麼?它似乎沒有在我正在閱讀的指南中介紹。

回答

0

您使用的是覆蓋1.0.x的文檔的古代版本。測試支持現在更加穩固,所以請參閱http://grails.org/doc/latest/的更新第9章