FitNesse:启用 FitNesse Fixture 以在服务器端调用方法

FitNesse: Enabling a FitNesse Fixture to call a method on the Server Side

我已经使用 Eclipse 通过某些方法实现了 Web 服务。

然后我把它导出到一个WAR文件,这个文件将与Tomcat一起使用。

然后我使用 wsimport 为我的网络服务创建 'stubs'。

'stubs'只是接口。

现在我想知道如何通过我将要编写的 FitNesse 装置调用 Web 服务。

我正在 JAVA.

编码

有什么方法可以让我从我的 FitNesse 装置调用 Web 服务方法,记住为 Web 服务生成的 'stubs'?

有很多方法可以完成您描述的操作。 例如,您可以在 Java 中创建您自己的固定装置(即 class 包含测试代码),它使用您生成的存根来调用您的服务。或者(我更喜欢)是直接使用 HTTP 帖子调用服务,在 wiki 中配置,并执行 XPath 查询,通过编写 Java 代码或在 wiki 上配置 XPath,根据您收到的响应进行检查你服务实施。

后一种方式是fixtures支持的(准备运行FitNesse安装)我装上GitHub(https://github.com/fhoeben/hsac-fitnesse-fixtures). For specific information on how to call a web service see https://github.com/fhoeben/hsac-fitnesse-fixtures/wiki/4.-XmlHttpTest-Examples and https://github.com/fhoeben/hsac-fitnesse-fixtures/wiki/6.-SoapCallMapColumnFixture-Examples看你想用Slim还是Fit.

苗条样本:

!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|