首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现Xspec单元测试?

如何实现Xspec单元测试?
EN

Stack Overflow用户
提问于 2016-05-04 07:24:30
回答 1查看 705关注 0票数 0

有人知道如何使用XSLT中的XSpec测试这段简单的代码吗?

代码语言:javascript
复制
<xsl:template match="@NameTitle">       
    <NameTitle Value="{if(. = ('Sir', 'Lady', 'Hon', 'R Hon')) then 'Other' else .}"
         Description="{if(. = ('Sir', 'Lady', 'Hon', 'R Hon')) then . else ''}"/>
</xsl:template>


<xsl:template match="BusinessChannel/Contact/ContactPerson | SalesChannel/LoanWriter">
    <PersonName>
        <xsl:apply-templates select="@NameTitle"/>
        <FirstName>
            <xsl:value-of select="@FirstName"/>
        </FirstName>
        <Surname>
            <xsl:value-of select="@Surname"/>
        </Surname>
    </PersonName>
</xsl:template>

从初学者的角度来看,使用Xspec测试函数很简单,但对于选择属性的模板来说并不简单(至少目前对我来说是这样,因为现在我已经开始使用它)。

这很简单:

代码语言:javascript
复制
    <xsl:function name="fn:RemoveSpace">
        <xsl:param name="RemoveSpace"/>
        <xsl:if test="$RemoveSpace != ''">
            <xsl:value-of select="translate($RemoveSpace, ' ', '')"/>   
        </xsl:if>
    </xsl:function>

    <x:scenario label="Scenario for testing function RemoveSpace">
       <x:call function="fn:RemoveSpace">
           <x:param name="RemoveSpace" select="'Person Applicant'"/>
       </x:call>
       <x:expect label="Remove the white space">PersonApplicant</x:expect>
    </x:scenario>

任何建议都是欢迎的。我使用的是OxygenXML的Xspec。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-04 08:35:11

基于https://github.com/expath/xspec/wiki/Writing-Scenarios#matching-scenarioshttps://github.com/expath/xspec/wiki/Writing-Scenarios#expectations,您可以编写

代码语言:javascript
复制
<x:scenario label="when processing a NameTitle attribute">
   <x:context href="dir/test.xml" select="/foo/bar/@NameTitle"/>
   <x:expect label="it should produce a NameTitle  element">
          <NameTitle Value="Other"
         Description="Lady"/>
   </x:expect>
</x:scenario>

这假设您有一个带有测试数据的文件test.xml。我想你也可以用

代码语言:javascript
复制
<x:scenario label="when processing a NameTitle attribute">
   <x:context select="@NameTitle">
      <foo NameTitle="Sir"/>
   </x:content>
   <x:expect label="it should produce a NameTitle  element">
          <NameTitle Value="Other"
         Description="Sir"/>
   </x:expect>
</x:scenario>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37021073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档