fitnessefitnesse-slim

FitNesse: Is it required to write fixtures to add and use variables on test page


I am trying to add a table of variables and its values in FitNesse suite page, so that it can be used for all my tests.

I am using xmlHtttp tests for SOAP web services and fhoeben/hsac-fitnesse-fixtures (slim) for this.

Is it required to write separate fixtures to add a table?


Solution

  • Yes you can.

    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/|
    |$City=         |xPath          |//weather:City/text()                       |
    *!
    
    |send request       |
    |zip  |City?        |
    |10007|New York     |
    |94102|San Francisco|
    

    In this example the variable zip is used so the request is sent with either 10007 or 94102.