gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 15:53:16 25 4
gpt4 key购买 nike

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

该服务在多个地方使用 groovyPageRenderer,但我无法从 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)

我知道代码有效,所以我在配置单元测试时一定做错了。我这样做是为了将它注入(inject)到服务中。
def groovyPageRenderer
groovyPageRenderer = Mock(PageRenderer)
service.groovyPageRenderer = groovyPageRenderer

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

最佳答案

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

您必须在 Spock 中设置一些交互,as explained in the documentation .

示例代码:

groovyPageRenderer.render(_) >> "<some>xml</some>"

关于unit-testing - PageRenderer 在单元测试期间返回空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36040423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com