Unit testing Grails单元测试:缺少Json编解码器/如何模拟Json编解码器?
我正在对一个控制器进行单元测试,目前我在一个服务(由控制器调用)中遇到了“encodeAsJSON()”的方法调用 我得到了MissingMethodException,因为encodeAsJSON()是一个Grails编解码器 搜索一点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 一
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接口上对其进行“模拟”(这是真的模拟吗?)
希望这对其他人有帮助