【发布时间】:2019-08-14 00:01:50
【问题描述】:
我正在编写一个 mocha 测试来检查函数运行后文件是否存在。我目前得到的结果是断断续续的。它有时会连续通过几次,但随后失败。我对 TypeScript 很陌生,所以我不确定发生了什么。
我检查了我的代码并确保我正确地回答了承诺。
这是我要测试的功能:
export async function writePackConfig (templateFile: TemplateFile, destination: string, filename: string) {
LogToConsole('Writing pack config file')
const mappings = await getPackInfo()
let content = generateTemplate(TemplateFile.packFile, mappings)
// writeFileContent(join(destination, filename), content, filename, false)
await writeFile(join(destination, filename), content, { encoding: 'utf8', flag: 'wx+' }, (error) => {
if (error) {
throw error
}
return Promise.resolve()
})
}
这就是我测试它的方式:
describe('Testing writePackConfig function', function () {
let testFolder = join(__dirname, 'writePackConfig-test')
before('Create testing folder', async () => {
try {
removeSync(testFolder)
} catch {
console.log('Folder does not exist')
}
mkdirSync(testFolder)
return Promise.resolve()
})
before('Create pack.yaml file', async () => {
let mappings = {
'ref': 'pack-ref',
'packname': 'Pack Ref',
'author': 'Test Author',
'email': 'example@example.com'
}
let stubGetPackInfo = sinon.stub(bootstrapfunctions, 'getPackInfo').resolves(mappings)
await writePackConfig(TemplateFile.packFile, testFolder, 'write-pack-config-pack.yaml').catch(error => {
console.log(error)
})
stubGetPackInfo.restore()
return Promise.resolve()
})
it('Check that file is written when writePackConfig is run', function () {
let result = existsSync(join(testFolder, 'write-pack-config-pack.yaml'))
console.log(result)
assert.strictEqual(result, true)
})
它应该返回 true,因为文件确实存在。然而,并非总是如此。但是,每次运行时都会创建该文件。
【问题讨论】:
标签: typescript mocha.js