我的控制器中有一个动作:
def dirtyMarker() {
render(template: '/layouts/modals/marker/dirtyMarker')
}
并且我喜欢对它进行单元测试。我一直在尝试很多可能性。这似乎很简单,但似乎没有任何效果(Grails 2.2.3)。我知道在这里,测试可能不重要,但我有很多其他方法返回渲染模板,我不知道如何实现这个测试..
答案 0 :(得分:4)
void dirtyMarker() {
controller.metaClass.render = { Map params ->
assert params.template == '/layouts/modals/marker/dirtyMarker'
return 'a'
}
def result = controller.dirtyMarker()
assert result == 'a'
}
答案 1 :(得分:2)
您还可以模拟模板:
void testDirtyMarker() {
views['/layouts/modals/marker/_dirtyMarker.gsp'] = 'mock contents'
controller.dirtyMarker()
assert response.text == 'mock contents'
}
有关详细信息,请参阅Testing Template Rendering