javascript - 如果 Mocha 测试花费的时间短于给定的时间段,我如何才能失败?

标签 javascript node.js mocha.js chai

我尝试测试的场景:我想确保文件不被缓存,从而确保一个进程(通常需要 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/

相关文章:

node.js - 在 Strongloop 环回中重写关系远程方法

javascript - express.js 应用程序在一段时间后崩溃

javascript - 使用 Node-jsCoverage 、 Mocha 和 Express 进行功能测试覆盖率报告

javascript - 为什么 document.activeElement 在 Mac 上使用 Firefox 会产生不同的结果

javascript - 在对象的现有循环内循环

node.js - 如何增加启动时的内存?

javascript - Mocha 测试总是通过

unit-testing - 如何模拟库函数(测试 redux Action Creator)

javascript - 如何从异步调用返回响应?

javascript - 按类名删除所有跨度元素?