當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。