当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django SimpleTestCase.assertHTMLEqual用法及代码示例


本文介绍 django.test.SimpleTestCase.assertHTMLEqual 的用法。

声明

SimpleTestCase.assertHTMLEqual(html1, html2, msg=None)

断言字符串 html1html2 相等。比较基于 HTML 语义。比较考虑了以下几点:

  • 忽略 HTML 标记前后的空格。
  • 所有类型的空格都被认为是等效的。
  • 所有打开的标签都是隐式关闭的,例如当周围的标记关闭或 HTML 文档结束时。
  • 空标签等同于它们的self-closing 版本。
  • HTML 元素的属性顺序并不重要。
  • 没有参数的布尔属性(如 checked )等于名称和值相等的属性(参见示例)。
  • 引用相同字符的文本、字符引用和实体引用是等效的。

以下示例是有效测试,不会引发任何 AssertionError

self.assertHTMLEqual(
    '<p>Hello <b>&#x27;world&#x27;!</p>',
    '''<p>
        Hello   <b>&#39;world&#39;! </b>
    </p>'''
)
self.assertHTMLEqual(
    '<input type="checkbox" checked="checked" id="id_accept_terms" />',
    '<input id="id_accept_terms" type="checkbox" checked>'
)

html1html2 必须包含 HTML。如果其中一个无法解析,则会引发 AssertionError

可以使用msg 参数自定义出错时的输出。

在 Django 4.0 中更改:

在旧版本中,任何没有值的属性(不仅是布尔属性)都被认为等于具有相同名称和值的属性。

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.test.SimpleTestCase.assertHTMLEqual。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。