[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] ANN: 'Testing XSLT' training course PDF available


Subject: Re: [xsl] ANN: 'Testing XSLT' training course PDF available
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Fri, 14 Dec 2007 19:53:34 +0530

Thanks Florent for clarifying my doubts.

I agree to your remarks.

On Dec 14, 2007 7:45 PM, Florent Georges <lists@xxxxxxxxxxxx> wrote:
> Mukul Gandhi wrote:
>
>  Hi
>
> > I guess, Florent that your unit test scripts will duplicate
> > XSLT code from the *actual* stylesheet ? Whereas, ideal
> > unit testing will be (JUnit like) - the unit test script
> > invokes the main stylesheet (which doesn't have any testing
> > code, i.e. it's pure) and supplies some data to it (an
> > input XML for e.g.), and do assertions.
>
>  I am not sure what you mean by "duplicate".  The principle
> is simply to write little pieces of code that each setups
> values, exercizes the component under test and then apply
> assertions on the result.  Sounds familiar ?-)
>
>  How it is implemented is by generating XSLT stylesheets
> that have a copy of the pieces of XSLT code, as well as code
> generated from assertions (and others), and that imports the
> tested stylesheets.
>
>  For instance:
>
>    <t:test>
>      <xsl:variable name="input">
>        ...
>      </xsl:variable>
>      <xsl:variable name="expected">
>        ...
>      </xsl:variable>
>      <xsl:apply-templates select="$input" t:variable="result"/>
>      <t:assert-deep expect="$expected" select="$result"/>
>    </t:test>
>
> will generates something with the same taste as:
>
>    <xsl:import href="test-stylesheet.xsl"/>
>
>    <xsl:template name="some-id">
>      <xsl:variable name="input">
>        ...
>      </xsl:variable>
>      <xsl:variable name="expected">
>        ...
>      </xsl:variable>
>      <xsl:variable name="result" as="item()*">
>        <xsl:apply-templates select="$input"/>
>      </xsl:variable>
>      <xsl:if test="not(deep-equals($expected, $result))">
>        <xsl:sequence select="
>            error(xs:QName('t:ASSERT'), 'Error message')"/>
>      </xsl:if>
>    </xsl:template>
>
>  I am not sure that answers your question?
>
>  Regards,
>
> --drkm



-- 
Regards,
Mukul Gandhi


Current Thread
Keywords