1

我想测试我的 PHP/Symfony 项目生成的这个非常简单的页面

            <div>Simple&nbsp;! Tranquille&nbsp;! Excellent&nbsp;!</div>

(它是法语,所以它需要&nbsp;感叹号前面的硬空格。)

我认为一个同样简单的测试,例如

        $this->assertSelectorTextContains('div', 'Simple&nbsp;! Tranquille&nbsp;! Excellent&nbsp;!');

会做的伎俩,但我失败了。

进一步调查表明

        $texte = $crawler->filter("div")->first();
        $this->assertEquals($texte->text(), "Simple&nbsp;! Tranquille&nbsp;! Excellent&nbsp;!");

返回

Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'Simple ! Tranquille ! Excellent !'
+'Simple&nbsp;! Tranquille&nbsp;! Excellent&nbsp;!'

那么,我如何帮助assertSelectorTextContains()(更一般地说,PHPUnit)理解两个字符串实际上是相同的?(或者至少是等价的?)

4

1 回答 1

2

更改我的搜索条件得到了答案html_entity_decode()

        $this->assertSelectorTextContains('div', html_entity_decode('Simple&nbsp;! Tranquille&nbsp;! Excellent&nbsp;!'));

做这项工作。

于 2021-06-27T19:29:12.230 回答