gpt4 book ai didi

PHPUnit - 无法断言两个字符串相等

转载 作者:行者123 更新时间:2023-12-05 02:59:33 25 4
gpt4 key购买 nike

我有一个单元测试,我正在尝试测试 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 €'

我假设这与欧元符号(可能是字符编码)或字符串中的某种隐藏字节有关,但不确定如何检查它?

任何人都可以就如何调试此问题或可能的原因给我一些建议吗?

干杯,

最佳答案

所以我找到了一个答案,看起来像 NumberFormatter 在它的输出中添加了一个不间断的空格(这对货币有意义),更多信息在这里:https://www.php.net/manual/en/numberformatter.formatcurrency.php#118304

我能够基于此提出解决方案:https://stackoverflow.com/a/40724830/4161644

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);
}

关于PHPUnit - 无法断言两个字符串相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57812473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com