如何解决单元测试grails标记
| 我已经写了一个Grails标签,它只是Grails select标签周围的一个很薄的包装package com.example
class MyTagLib {
def listTrees = {attrs ->
List<TreeDto> allTrees = getMandatoryAttributeValue(attrs,\'trees\')
out << g.select(from: allTrees)
}
}
我已经为该类编写了单元测试,但是在运行它时,执行最后一行时出现以下错误:
groovy.lang.MissingMethodException:否
方法签名:
com.example.MyTagLib.select()是
适用于参数类型:
(java.util.LinkedHashMap)
在运行单元测试时,似乎对g
名称空间中grails标记的引用不可用。我已经尝试创建集成测试,但这也不起作用。
有没有一种方法可以测试测试一个调用另一个标签的标签,而不用存根/模拟另一个标签的输出?
解决方法
您必须模拟正在使用的grails taglib,并通过metaClass机制将其注入。
protected void setUp() {
super.setUp()
mockTagLib(FormTagLib)
def g = new FormTagLib()
tagLib.metaClass.g = g
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。