Grails单元测试:缺少Json-Codec /如何模拟Json-Codec?

时间:2012-07-12 09:53:04

标签: unit-testing grails codec

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

我得到了MissingMethodException,我期望它是encodeAsJSON()是Grails-Codec。

经过一些搜索loadCodec - 方法应该做我想要的。

但是我无法导入它,因为我的IDE(SpringSource-ToolSuite)无法找到它。

错误:

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

一切正常:

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

但我不需要HTMLCodec而且documentation没有列出JSONCodec。

该方法本身仍然有效(运行应用程序),但我不知道如何对其进行单元测试。 有任何想法吗?我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:2)

嗯,进一步搜索和尝试得到了答案:

Map.metaClass.encodeAsJSON = { -> delegate }

我使用的例子是

String.metaClass.encodeAsSha1 = { -> delegate }

Source

字符串不起作用 - 当然因为我正在使用Map,它应该转换为JSON。

我认为你必须“模拟”(这是真正的模拟吗?)它在相应数据类型的Groovy-Interface上。

希望这有助于其他人