我有一个像这样的公平简单的taglib(为了示例,查询被简化):
def toptopics = { attrs, body ->
def topics = Topic.executeQuery("from Topic")
topics.each { topic ->
out << body(topic:topic)
}
}
然后我在gsp中使用它如下:
<g:toptopics>
<li><a href="#">${topic.name}</a></li>
</g:toptopics>
然后我正在尝试为它编写测试(下面的代码):
void setUp() {
taglib = new MySampleTagLib()
}
void test_each_in_collection() {
assertEquals("tag 1;tag 2", taglib.toptopics() { "${topic.name};" })
}
但它一直都在失败。测试输出抱怨“没有这样的属性:类的主题:MySampleTagLibTests
出于某种原因,它在将字符串传递给taglib之前尝试评估$ {topic.name}。我试图逃避美元唱歌没有成功。关于这个的任何提示?
答案 0 :(得分:0)
要测试taglib,您应该扩展TagLibUnitTestCase
。当您使用此类时,不直接实例化您的标记类(如上面的代码中所示),而是通过tagLib
属性为您提供实例。例如,我们假设我想测试repeat
的{{1}}标记。此标记采用单个属性,并期望标记具有使用变量的主体。
FooTagLib