我正在开发一个命令行应用程序,该应用程序使用 yargs 处理传递给该应用程序的选项并以多种语言运行。
使用非英语语言环境时测试失败,因为测试的预期结果是用该语言硬编码的。
例如,以下代码以英语返回通过的测试,但是如果语言设置为法语,则将失败,因为 Yargs 以法语返回错误。
it('call config with no arguments', () => {
return app('config')
.then(out => expect(out).to.include('Not enough non-option arguments: got 0, need at least 1'))
})
这让我想到了我的问题。处理这种情况的最佳做法是什么?我一直在研究 Yargs 甚至是它用于翻译的 y18n 包,但并没有看到解决这个问题的直接方法。
我想一个可能的解决方案是让测试期望的字符串可能通过 y18n 库进行翻译,或者可能对每种支持的语言进行测试,但这可能有点矫枉过正。
在这种情况下你做了什么?我愿意知道!
谢谢!