【问题标题】:How to compare HTML while ignoring whitespace?如何在忽略空格的同时比较 HTML?
【发布时间】:2014-11-04 03:35:21
【问题描述】:

我正在对一个 HTML 构建器进行单元测试。我想断言生成的内容与预期的内容相匹配,但我希望在空白方面具有一定的灵活性。

具体来说,我不在乎标签之间的空白是制表符缩进还是空格缩进,或者它们是否都在一行上。我只关心标签、它们的顺序、它们的属性和它们的内容。

如何断言两个 HTML 片段相等?

【问题讨论】:

    标签: php html phpunit


    【解决方案1】:

    自我回答,因为我在任何地方都没有找到这个:

    /**
     * Compare two HTML fragments.
     */
    protected function assertEqualHtml($expected, $actual)
    {
        $from = ['/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s', '/> </s'];
        $to   = ['>',            '<',            '\\1',      '><'];
        $this->assertEquals(
            preg_replace($from, $to, $expected),
            preg_replace($from, $to, $actual)
        );
    }
    

    基于PHP implementation of an HTML minifier

    【讨论】:

    • 另见 this solution,它使用 PHPUnit 的 assertXML 系列函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    相关资源
    最近更新 更多