使用nUnit测试特定文化的输出(货币格式),但我们得到以下结果。
Fail: Formatting currency amount
String lengths are both 11. Strings differ at index 2.
Expected: "12 765,87 €"
But was: "12 765,87 €"
-------------^
我们看不出字符串之间的区别。我们的预期结果使用“空格”字符。
我们可以将不同的空格字符放入已接受的结果中以使测试通过吗?
顺便说一下,测试的培养物是fr-FR。
编辑:感谢Adam,你发现了unicode角色。我们已经改变了我们的预期结果,现在每个单元测试都通过了。
答案 0 :(得分:5)
他们可能是不同类型的空间。 Unicode有很多不同的space characters。通过将字符转换为整数来查看索引2处的代码点以获得答案。
修改强>
在回复您的评论时,代码点160为non-breaking space。您可以enter it directly加入源代码(例如Windows上数字键盘上的Alt + 0160),或使用转义序列:
// U+20AC is the Unicode code point for the euro sign
string expected = "12\u00A0765,87 \u20AC";
答案 1 :(得分:1)
很可能它是一个空白的字符,但不是空格,以避免标签,以及在启用自动换行时将数字分成两个。