其实测试标签库是一件很容易的事,因为当一个标签被当作一个方法执行时,它会返回一个字符串值。
所以例如你拥有如下的一个标签库:class FooTagLib {
def bar = { attrs, body ->
out << "<p>Hello World!</p>"
}
def bodyTag = { attrs, body ->
out << "<${attrs.name}>"
out << body()
out << "</${attrs.name}>"
}
}
相应的测试如下:class FooTagLibTests extends GroovyTestCase {
void testBarTag() {
assertEquals "<p>Hello World!</p>", new FooTagLib().bar(null,null)
}
void testBodyTag() {
assertEquals "<p>Hello World!</p>", new FooTagLib().bodyTag(name:"p") {
"Hello World!"
}
}
}
注意在第二个例子的testBodyTag中,我们传递了返回标签主体内容的代码块作为内容,把标签主体内容作为字符串比较方便。