我尝试测试的场景:我想确保文件不被缓存,从而确保一个进程(通常需要 10 秒以上)执行并完成。
如果 Mocha 测试完成时间短于 10 秒,我希望失败。我已经在 stackoverflow 上查看了文档和其他问题。我该怎么做?
谢谢!
编辑:这种测试模式可能并不理想 - 我主要只是好奇这个特定问题会出现什么。
最佳答案
您可以计算任务开始前的时间和任务完成时的时间,并断言差异与您想要的>=
不同。像这样的东西:
function doSomethingSlow(time){
// wait time and resolve
return new Promise(resolve => setTimeout(resolve, time))
}
// failed
let start = new Date
doSomethingSlow(2000).then(() => {
let finish = new Date
// assert(finish - start > 5000)
console.log("did it take longer than 5 seconds: ", finish - start > 5000)
})
此外,请注意 mocha 对测试施加了时间限制。请参阅here更改它,但要了解限制是存在的,因为长时间运行的测试通常不受欢迎。通过取消网络/文件访问,您通常可以使测试同样有效且更快。
关于javascript - 如果 Mocha 测试花费的时间短于给定的时间段,我如何才能失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52599326/