PHPUnit-断言两个字符串相等失败

PHPUnit-断言两个字符串相等失败,php,unit-testing,phpunit,Php,Unit Testing,Phpunit,我有一个单元测试,试图测试NumberFormatter的输出 我的代码的简化版本是: public function testGetFormattedPrice() { $formatter = NumberFormatter::create( "de_DE", NumbererFormatter::CURRENCY ); $this->assertEquals( '16,66 €', $forma

我有一个单元测试,试图测试
NumberFormatter
的输出

我的代码的简化版本是:

public function testGetFormattedPrice()
{
    $formatter = NumberFormatter::create(
        "de_DE",
        NumbererFormatter::CURRENCY
    );

    $this->assertEquals(
        '16,66 €',
        $formatter->formatCurrency(16.66, "EUR")
    );
}
这将导致故障:

Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'16,66 €'
+'16,66 €'
我假设这与欧元符号(可能是字符编码)或字符串中的某种隐藏字节有关,但不确定如何检查

谁能给我一些关于如何调试这个问题的建议,或者可能的原因是什么

干杯


Mo

因此我找到了一个答案,看起来像是
NumberFormatter
在它的输出中添加了一个不间断的空格(这对于货币来说是有意义的),更多信息如下:

基于此,我提出了一个解决方案:


非常感谢,我遇到了这个问题,你刚刚解决了
public function testGetFormattedPrice()
{
    $formatter = NumberFormatter::create(
        "de_DE",
        NumbererFormatter::CURRENCY
    );

    $format = str_replace("\xc2\xa0", ' ', $formatter->formatCurrency(16.66, "EUR"));

    $this->assertEquals('16,66 €', $format);
}