2012-07-12 81 views
0

我正在測試一個控制器的單元,目前我被一個服務(由控制器調用)中的「encodeAsJSON()」方法調用卡住了。Grails單元測試:Json-Codec缺失/如何模擬Json-Codec?

我得到的MissingMethodException,這是我所期待的encodeAsJSON()是一個與Grails編解碼器。

經過一番搜索loadCodec -Method應該做我想做的。

但我不能導入它,因爲我的IDE(SpringSource的-工具包)無法找到它。

錯誤:

import org.codehaus.groovy.grails.plugins.codecs.JSONCodec 

一切工作:

import org.codehaus.groovy.grails.plugins.codecs.HTMLCodec 

但我不需要HTMLCodec和documentation不會列出JSONCodec。

的方法本身仍然是工作(運行應用程序),但我不知道如何單元測試。 有什麼建議嗎?我錯過了明顯的東西嗎?

回答

2

那麼,進一步的搜索,並試圖讓我的回答是:

Map.metaClass.encodeAsJSON = { -> delegate } 

我使用的例子是

String.metaClass.encodeAsSha1 = { -> delegate } 

Source

字符串沒有工作 - 當然的我正在使用應該轉換爲JSON的地圖。

我認爲你必須「模擬」(這是真的嘲弄?)它的相應數據類型的Groovy的接口。

希望這有助於別人