Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing PageRenderer在单元测试期间返回空对象_Unit Testing_Grails_Groovy_Grails 2.0_Spock - Fatal编程技术网

Unit testing PageRenderer在单元测试期间返回空对象

Unit testing PageRenderer在单元测试期间返回空对象,unit-testing,grails,groovy,grails-2.0,spock,Unit Testing,Grails,Groovy,Grails 2.0,Spock,我的任务是为现有服务编写单元测试 该服务在多个位置使用GroovyPagerEnder,但我无法从render方法中获得除null之外的任何内容 reportXml = groovyPageRenderer.render(template: templateName, model: [summary:result?.summaryData,reportDate: reportDate ]) pdfRenderingService.render([document: XMLResource.l

我的任务是为现有服务编写单元测试

该服务在多个位置使用GroovyPagerEnder,但我无法从render方法中获得除null之外的任何内容

reportXml = groovyPageRenderer.render(template: templateName,  model: [summary:result?.summaryData,reportDate: reportDate ])

pdfRenderingService.render([document: XMLResource.load(new InputSource(new StringReader(reportXml))).document])

Caused by: java.lang.NullPointerException
    at java.io.StringReader.<init>(StringReader.java:50)

为了从渲染方法中获得结果,我还缺少什么?

您正在注入模拟,这是一个良好的开始,但您必须告诉模拟在使用时如何操作。现在,您没有给render方法任何行为,所以它只是返回
null

您必须在Spock中设置一些交互

示例代码:

groovyPageRenderer.render(_) >> "<some>xml</some>"
groovyPageRenderer.render(41;>>“xml”

我最后做了类似的事情来让它工作

groovyPageRenderer.metaClass.render = {Map param -> return "something"}

我很确定它没有,因为参数不匹配。你看过文件了吗?
groovyPageRenderer.metaClass.render = {Map param -> return "something"}