我是 FitNesse 的新手。我想知道某些事情。 首先,我使用Eclipse使用某些方法实现了Web服务。 然后,我将它导出到WAR文件,该文件将与Tomcat一起使用。 然后我使用 wsimport 为我的Web服务创建“存根”。 “存根”只是接口。 现在我想知道如何通过我将要编写的 FitNesse 夹具来调用Web服务。我在 JAVA 编码。有没有什么方法可以通过我的 FitNesse 夹具调用Web服务方法,记住为Web服务生成的“存根”?
我对此完全陌生。帮助将不胜感激。谢谢!
答案 0 :(得分:2)
有很多方法可以做你所描述的。 例如,您可以在Java中创建自己的夹具(即包含测试代码的类),该夹具使用您生成的存根来调用您的服务。或者(我更喜欢)是使用在wiki中配置的HTTP帖子直接调用服务,并执行XPath查询,通过编写Java代码或在wiki上,根据您收到的响应来配置XPath以检查服务实现。
后一种方法由灯具支持(并准备好运行FitNesse安装)我穿上了GitHub(https://github.com/fhoeben/hsac-fitnesse-fixtures)。有关如何调用网络服务的具体信息,请参阅https://github.com/fhoeben/hsac-fitnesse-fixtures/wiki/4.-XmlHttpTest-Examples和https://github.com/fhoeben/hsac-fitnesse-fixtures/wiki/6.-SoapCallMapColumnFixture-Examples,具体取决于您是要使用Slim还是Fit。
Slim示例:
!2 Body via scenario
Using a scenario allows us to generate multiple request, only changing certain values.
!*> Scenario definition
!define POST_BODY_2 { {{{
<s11:Envelope xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/">
<s11:Body>
<ns1:GetCityWeatherByZIP xmlns:ns1="http://ws.cdyne.com/WeatherWS/">
<ns1:ZIP>@{zip}</ns1:ZIP>
</ns1:GetCityWeatherByZIP>
</s11:Body>
</s11:Envelope>
}}} }
|script|xml http test|
|table template |send request |
|post |${POST_BODY_2} |to |${URL} |
|check |response status|200 |
|show |response |
|register prefix|weather |for namespace |http://ws.cdyne.com/WeatherWS/|
|check |xPath |//weather:City/text()|@{City} |
*!
|send request |
|zip |City |
|10007|New York |
|94102|San Francisco|