简单的mocha、nodejs单元测试问题。我有一个简单的实用程序类,使用 fs-extra 从本地文件系统读取文件。该类称为 FileUtils,采用路径并尝试默认使用 utf-8 返回上下文。简单:
async readFileContent(fqFileName, encoding='utf-8'){
return fse.readFile(fqFileName,encoding)
.then(content => content)
.catch(any=>{
throw any
})
}
我的单元测试只需要类 FileUtils 并通过调用调用该方法
it.only('accepts an html template to compile', () => {
let fixture = path.resolve(__dirname, '../_fixtures/100_tplWithDynamicBlocks.html')
fileUtils.readFileContent(fixture)
.then(content => {
console.log(content) /* forget */
content.should.not.be.null
})
})
工作正常,一切正常。但是,当我将路径更改为无效/不存在的路径时,mocha 并没有意识到该错误,只是警告我,未处理的 promise 拒绝将在将来退出 Node 进程。
所以我的问题是,我如何告诉mocha这个测试应该被标记为失败而不实现任何类型的catch签名,或者更好的是我应该如何实现mocha识别丢失文件(或其他)访问的服务方法。
服务实现必须抛出不存在路径的错误(或任何其他错误),但是将这些错误传递给mocha而不编写mocha框架已经在做的不必要代码行的最佳方法是什么?
最佳答案
可以在then之后使用catch方法处理错误。在方法内部您可以编写断言。
关于node.js - 如何在简单的 Mocha 单元测试中处理 UnhandledPromiseRejectionWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49660863/