Unit testing Grails单元测试:缺少Json编解码器/如何模拟Json编解码器?

Unit testing Grails单元测试:缺少Json编解码器/如何模拟Json编解码器?,unit-testing,grails,codec,Unit Testing,Grails,Codec,我正在对一个控制器进行单元测试,目前我在一个服务(由控制器调用)中遇到了“encodeAsJSON()”的方法调用 我得到了MissingMethodException,因为encodeAsJSON()是一个Grails编解码器 搜索一点loadCodec-方法后,应该可以执行我想要的操作 但是我无法导入它,因为我的IDE(SpringSource工具套件)找不到它 错误: import org.codehaus.groovy.grails.plugins.codecs.JSONCodec 一

我正在对一个控制器进行单元测试,目前我在一个服务(由控制器调用)中遇到了“encodeAsJSON()”的方法调用

我得到了MissingMethodException,因为encodeAsJSON()是一个Grails编解码器

搜索一点
loadCodec
-方法后,应该可以执行我想要的操作

但是我无法导入它,因为我的IDE(SpringSource工具套件)找不到它

错误:

import org.codehaus.groovy.grails.plugins.codecs.JSONCodec
一切正常:

import org.codehaus.groovy.grails.plugins.codecs.HTMLCodec
但是我不需要HTMLCodec,也没有列出JSONCodec

方法本身仍在工作(运行应用程序),但我不知道如何对其进行单元测试。
有什么想法吗?我是否遗漏了一些明显的东西?

好吧,进一步的搜索和尝试让我得到了答案:

Map.metaClass.encodeAsJSON = { -> delegate }
我举的例子是

String.metaClass.encodeAsSha1 = { -> delegate }
()

字符串不起作用-当然,因为我使用的是映射,它应该转换为JSON

我认为您必须在相应数据类型的Groovy接口上对其进行“模拟”(这是真的模拟吗?)

希望这对其他人有帮助