1

使用 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。

编辑:感谢亚当,您对 unicode 字符很满意。我们已经改变了我们的预期结果,现在每个单元测试都通过了。

4

2 回答 2

5

它们可能是不同类型的空间。Unicode 有很多不同的空格字符。通过将字符转换为整数来查看索引 2 处的代码点以获得答案。

编辑

作为对您的评论的回应,代码点 160 是一个不间断的空格。您可以将其直接输入到源代码中(例如,Windows 数字键盘上的 Alt+0160),或使用转义序列:

// U+20AC is the Unicode code point for the euro sign
string expected = "12\u00A0765,87 \u20AC";
于 2009-04-25T13:03:48.500 回答
1

很可能它是一个空白字符,但不是空格,以避免标签等在启用自动换行时将数字分成两部分。

于 2009-04-25T13:14:09.880 回答