FitNesse夹具 - 启用FitNesse夹具以调用服务器端的方法

时间:2015-01-30 04:06:40

标签: java eclipse web-services fitnesse wsimport

我是 FitNesse 的新手。我想知道某些事情。 首先,我使用Eclipse使用某些方法实现了Web服务。 然后,我将它导出到WAR文件,该文件将与Tomcat一起使用。 然后我使用 wsimport 为我的Web服务创建“存根”。 “存根”只是接口。 现在我想知道如何通过我将要编写的 FitNesse 夹具来调用Web服务。我在 JAVA 编码。有没有什么方法可以通过我的 FitNesse 夹具调用Web服务方法,记住为Web服务生成的“存根”?

我对此完全陌生。帮助将不胜感激。谢谢!

1 个答案:

答案 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-Exampleshttps://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|