2

我正在使用intl package last version为货币格式创建单元测试0.16.1。我的格式化程序是:final currencyFormat = NumberFormat.simpleCurrency(locale: 'pt_BR');

我的预期结果是:var expected = r'R$ 1,00';. 1.0我以这种方式将我的格式化程序应用于值:var formatted = currencyFormat.format(1.0)导致R$ 1,00.

当我使用 测试两个值时expect(formatted, expected),它告诉我结果不一样。

Expected: 'R$ 1,00'
  Actual: 'R$ 1,00'
   Which: is different.
          Expected: R$ 1,00
            Actual: R$ 1,00
                      ^
           Differ at offset 2

好吧,我花了一些时间发现两个字符串的符文有一个字符差异。

预期符文:(82, 36, 32, 49, 44, 48, 48)

格式化符文:(82, 36, 160, 49, 44, 48, 48)

我的问题是:如果在格式化时使用不间断空格,当没有文档谈论它时如何避免这个错误?

4

1 回答 1

0

到目前为止,我实现的唯一方法是将 unicode 字符放入我预期的字符串:var expected = 'R\$\u{00A0}1,00';.

这不是一个好的解决方案,因为如果我们在应用程序中有许多格式化程序并测试所有使用不间断空间的内容,我们必须将我们的预期值放入 ASCII 码。

于 2020-04-26T03:50:02.657 回答