web-services - Grails Service Spock测试无法找到文件

标签 web-services grails wsdl spock

因此,我有了Grails 3.2.3应用程序,并且在其中一项服务中,我正在加载位于项目文件夹根目录中的WSDL,以便与SOAPClient一起使用,如下所示:

def wsdl = "soap.wsdl"

    SOAPClient soapClient

    @PostConstruct
    void init() {
        soapClient = new SOAPClient(wsdl)
    }

我的Spock测试使用@MockFor(MyService)进行了注释,Ive检查了该测试能否很好地运行init方法。

现在,当应用程序运行时,这可以很好地创建SOAPClient,但是当尝试编写Spock测试时,new SOAPClient(wsdl)返回null。我猜这是因为运行Spock测试时,wsdl在类路径中不正确,但是我还没有找到解决此问题的方法。有什么想法吗?

最佳答案

如果是我,我将使用metat_code的构造函数metaClass返回SOAPClient的模拟。像这样:SOAPClient

def 'test something'(){
    setup:
    def soapClientMock = Mock(SOAPClient)
    SOAPClient.metaclass.constructor = {String filename ->
        assert filename == "soap.wsdl"
        return soapClientMock
    }
}

关于web-services - Grails Service Spock测试无法找到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40985992/

相关文章:

c++ - native C++ : WSDL proxy generation library

android - 使用 ksoap2 在 android 中创建带有安全 header 的 soap 信封

java - CXF 3.1.5 与 2.7.17 - 通过 HTTP GET 访问 SOAP

grails - 将两个gsp屏幕连接到grails中的三个域

grails - 添加GORM域类时列出与设置

grails - Grails 3 War-内联插件问题

java - 如何从 axis1 stub 获取传输的响应 header

java - Maven - 无法解析项目 X 的​​依赖关系

web-services - 向 Web 服务响应添加可空字段是否会破坏向后兼容性?

ajax - 基于请求的WEB API服务调用访问限制