Grails - 使用命名编码器的单元测试 Controller

标签 grails grails-2.0 spock

我正在尝试对使用命名编码器的 Controller 进行单元测试。 Controller 看起来像这样:

def userByEmail(UserByEmailCommand userByEmailCommand) {
    render checkForErrorsAndExecute(userByEmailCommand) { UserByEmailCommand cmd ->
        JSON.use("complete") {
            [users: [userService.getUserByPrimaryEmailAddress(cmd.email)]] as JSON
        }
    }
}

当我运行测试时,我收到一个异常提示 Converter Configuration with name 'complete' not found!

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

您可以在测试本身中创建命名配置。例如:

given: 'register marshaller'
JSON.createNamedConfig('complete') { 
    it.registerObjectMarshaller(Map) { Map item -> item }
}

when: 'controller action is called'
controller.userByEmail()

then:
// assertion goes here

关于Grails - 使用命名编码器的单元测试 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31171319/

相关文章:

grails - 数据驱动的Spock测试

grails - GORM返回值查询组成

Grails:将注释应用于属性访问器而不是字段

java - 比较目录中的 jar 证书

Grails:禁用 GSP 中的强制字段验证

java - Windows 上的 Grails 出错。无法找到有效的认证

events - 如何在 Grails 3.2 中测试服务中事件的触发?

java - 在 Grails Controller 中包含具有 session 范围的服务?

grails - 仅适用于某些html页面和JavaScript的Grails插件

grails - Grails和Tomcat重复 “java.lang.IllegalStateException: Cannot forward after response has been committed”错误