【发布时间】:2012-07-09 12:19:55
【问题描述】:
我有一个失败的 mocha 测试输出我的字符串并突出显示“实际”和“预期”...除了没有突出显示。
经过一番猛烈抨击,我想我已经确定我的实际字符串包含一些完全对我隐藏的古怪 UTF-8 字符,而 Mocha 似乎不知道要突出显示它们。
我通过将我的预期值和实际值写入原始文本文件并将它们加载到 Kaleidoscope 中来解决这个问题,这表明它们通过突出显示单词之间的空格而有所不同。
我尝试加载 utf8 库(在 npm 上)并使用 utf8.encode str 编码其中一个字符串,但仍然失败,但现在字符显示为不仅仅是空格,Mocha 确实突出显示:
但不管怎样,我的测试都失败了。如何对这些字符串进行编码/解码/任何内容,以便它们匹配并且我的测试通过?
顺便说一句,我在测试中使用的比较字符串如下所示:
【问题讨论】:
-
你是如何得到预期正文的内容的?如果您复制/粘贴它,那么您可能需要将粘贴的 utf8 字符转换为正确的字符串文字 utf8 格式,如
\u0065或其他东西。 -
嗯,是的,我确实复制/粘贴了...有什么东西可以让我通过将这些字符转换为字符串文字吗?
-
既然你把它粘贴到你的文本编辑器中,你用什么编辑器?也许它将您的 JS 文件保存为不正确的编码?尝试在你的 mocha 文件上运行
file -bi filename.js并确保它是 utf-8。只是复制粘贴应该没问题,因为字符串文字中的 UTF8 字符应该没问题。 -
您的控制台字体似乎无法显示所涉及的特定字符;您可以尝试将其设置为使用更全面的字体(如何做到这一点取决于您的操作系统/桌面)。
-
我通过 iTerm2(不是 MacVim)使用 Vim,所以我将它直接复制/粘贴到了 Vim 缓冲区中。我检查了我的规范的文件类型,它看起来设置正确:
text/plain; charset=utf-8。我很想知道如何将此复制/粘贴的文本转换为转义文字——我该怎么做?
标签: node.js coffeescript mocha.js