我使用的 WSDL 有两个端口 - 一个具有肥皂绑定,另一个具有 HTTP 绑定。据我所知,SOAP 是一种消息传递协议,但仍然使用 HTTP 作为传输协议。那么这两个端口的使用有什么区别呢?
包含绑定和服务的 WSDL 部分:
<wsdl:binding name="OperationServiceNextGenHttpBinding" type="tns:OperationServiceNextGenPort">
<http:binding verb="POST"/>
<wsdl:operation name="operation">
<http:operation location="/operation"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="OperationServiceNextGenSOAPBinding" type="tns:OperationServiceNextGenPort">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="operation">
<soap:operation soapAction="http://some.schema.com/marketplace/search/v1/services/operation"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="OperationServiceNextGen">
<wsdl:documentation>
<version>1.1.10</version>
</wsdl:documentation>
<wsdl:port binding="tns:OperationServiceNextGenHttpBinding" name="OperationServiceNextGenHttpPort">
<http:address location="https://svcs.ebay.com/services/search/v1/OperationServiceNextGen"/>
</wsdl:port>
<wsdl:port binding="tns:OperationServiceNextGenSOAPBinding" name="OperationServiceNextGenSOAPPort">
<soap12:address location="https://svcs.ebay.com/services/search/v1/OperationServiceNextGen"/>
</wsdl:port>
</wsdl:service>
Run Code Online (Sandbox Code Playgroud) 我们的团队最近发现 Mockito 现在支持模拟静态方法(https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#48),这是主要原因之一在我们的单元测试中使用 PowerMock。由于我们在使用 PowerMock 2.0 时遇到了性能问题,因此我们希望转而使用 Mockito 3.6.0 来处理所有问题。
然而,我们确实使用其他 PowerMock 方法,如verifyPrivate、suppress、replace 等。有没有人写过或知道将单元测试从 PowerMock 迁移到 Mockito 3.6.0 的任何指南?