簡體   English   中英

為什么使用Django的assertInHTML()方法的測試用例失敗?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM