代码之家  ›  专栏  ›  技术社区  ›  Jonesome Reinstate Monica

包括HTML的单元测试数据:什么格式可以包括utf8和HTML的混合?XML、JSON还是其他?

  •  0
  • Jonesome Reinstate Monica  · 技术社区  · 2 年前

    我有单元测试代码,需要遍历HTML块,并确认解析器代码工作正常。

    目前,我们将测试用例存储在XML中。但我们面临的挑战是必须在html段上手工创建CDATA标记。

    我应该使用json还是其他格式?

    我们的数据是utf8,包括许多非拉丁字母。我们手动创建这些测试用例,在VSCode中手动创建xml。我们目前的工作流程是打开一个现有的测试用例,并将其保存在一个新名称下,粘贴相关的新数据。

    请告知。

    示例:

    下面的XML 是一个示例测试文件。

    我们的XML的XSD 在下面。“RawPayload”元素是来自HTTPGET的原始响应,其中包括HTML和其他内容(标头)(目前我们将整个元素放在CDATA标记中)。“ParsedOutput”元素是一个多行文本块,其中包含许多不同的字母。它是未标记的文本,目前不在CDATA块中。

    示例XML:

    <?xml version="1.0" encoding="utf-8"?>
    <TestCase>
      <TestSuiteVersion>1</TestSuiteVersion>
      <TestName>SampleTest-2</TestName>
      <TestEnabled>true</TestEnabled>
      <TestURL>https://www.testserver.com/ict/1256-l/</TestURL>
      <RawPayload><![CDATA[
          <!DOCTYPE html>
        <html lang="he"><head><meta charset="utf-8"><meta content="IE=edge" http-equiv="X-UA-Compatible">
        <meta content="width=device-width, initial-scale=1" name="viewport">sh({
          ... snip ...</div></div></body></html>
        ]]></RawPayload>
      <ParsedOutput>to avenge( את)
    
        לִנְקֹם ~ לנקום
        
        </ParsedOutput>
      <TestSuiteVersion>1</TestSuiteVersion>
    </TestCase>
    

    XSD:

    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
          xmlns:xs="http://www.w3.org/2001/XMLSchema">
       <xs:element name="TestCase">
          <xs:complexType>
             <xs:sequence>
                 <xs:element name="TestSuiteVersion" type="xs:int" minOccurs="1" />
                 <xs:element name="TestName" type="xs:string" minOccurs="1" />
                 <xs:element name="TestEnabled" type="xs:boolean" minOccurs="1" />
                 <xs:element name="TestURL" type="xs:anyURI" minOccurs="1" />
                 <xs:element name="RawPayload" type="xs:string" minOccurs="1" />
                 <xs:element name="ParsedOutput" type="xs:dateTime" minOccurs="1" />
             </xs:sequence>
          </xs:complexType>
       </xs:element>
    </xs:schema>
    
    0 回复  |  直到 2 年前