[英]Why does test case using Django's assertInHTML() method fail?
給定以下Django測試用例,為什么會失敗? 同樣重要的是,我該怎么做才能檢測HTML元素<form class="bc-form" id="update_template" action="" method="get" novalidate>
?
from django.test import TestCase
class Test_assertInHTML(TestCase):
def test_something(self):
needle = '<form class="bc-form" id="update_template" action="" method="get" novalidate>'
haystack = '''<html>
<form class="bc-form" id="update_template" action="" method="get" novalidate>
<table>
<tbody>
<tr><th>Template Name </th><td><select name="name" id="id_name"></select></td></tr>
<tr><th>Format </th><td><select name="format" id="id_format">
<option value="E">Email</option>
<option value="S">SMS</option>
</select>
</td></tr>
<tr><th>The message </th><td><textarea name="message" cols="40" rows="10" required id="id_message"></textarea></td></tr>
</tbody>
</table>
<input type="submit" value="Submit">
</form>
</html>'''
self.assertInHTML(needle, haystack, count=1)
您的針是一個不完整的HTML片段,它不是有效的HTML。
assertInHTML
的文檔指出,兩個參數(needle和haystack)都必須是有效的HTML。 解析器首先驗證HTML並丟棄所有無效的內容-因此測試失敗。
如果只想測試是否已顯示了開始表單標簽,則需要進行簡單的字符串比較,而不是使用assertInHTML
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.