简单的mocha,nodejs单元测试问题。我有一个简单的utilties类从fs-extra读取本地fs的文件。该类称为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没有意识到错误,只是警告我,未处理的承诺拒绝将在未来退出节点进程。
所以我的问题是,如何在没有实现任何类型的catch签名的情况下告诉mocha该测试应该被标记为失败,或者更好的是我应该如何实现mocha识别丢失文件(或其他)访问的服务方法。
服务实现必须抛出一个不存在的路径的错误(或任何其他错误),但究竟是通过这些错误,摩卡,而无需编写已经做unneccesary代码摩卡框架线的最佳方法是什么?
答案 0 :(得分:0)
您可以在then之后使用catch方法处理错误。在方法内部,您可以编写断言。