Grails:使用Spock测试模板渲染

时间:2014-06-06 00:33:24

标签: grails groovy spock

我使用Spock测试控制器的动作如下:

控制器中的

代码:

def milestoneChange() {
    Milestones selectedMilestone = dataQueryService.getMilestone(params.id)
    Tasks[] tasksList = dataQueryService.getTasksList(params.id)
    List enumerateNameList = dataQueryService.getEnumerateNameList()

    render(template: 'milestoneSummary', model: [selectedMilestone: selectedMilestone, tasksList: tasksList, enumerateNameList: enumerateNameList, selectedMilestoneID: params.id])
}
测试中的

代码:

    @TestFor(MilestonesMgtController)
class MilestonesMgtControllerSpec extends Specification {
void "change the milestone"() {
    when:
    views['/milestonesMgt/_milestoneSummary.gsp'] = "test"
    controller.params.id = 'Late Stage Review'
    controller.milestoneChange()

    then:
    controller.response.text == 'test'
}

}

因为_milestoneSummary.gsp的内容非常长,所以我使用了Grails文档和http://www.javacodegeeks.com/2013/09/grails-goodness-unit-testing-render-templates-from-controller.html中提到的方法,它使用了视图[' /milestonesMgt/_milestoneSummary.gsp']来嘲笑模板。但是,响应仍然是原始的长内容?有谁知道我的代码有什么问题?非常感谢!!!

当使用params / response / model时,我必须使用controller.xxx,但我看到文档中的示例代码直接使用了params / response / model,你知道为什么吗?

我正在使用Grails 2.3.8

项目链接http://github.com/jackyying1130/MMS 测试位于MMS / test / integration / phdmilestonemanagementsystem / MilestonesMgtControllerSpec.gr oovy

0 个答案:

没有答案