javascript - Mocha 前执行后 It 阻塞
问题描述
我正在尝试使用 mocha 和 chai 为 node.js 做单元测试用例。
index.js
module.exports = {
setA: function () {
return new Promise(function () {
setTimeout(function () {
console.log("aaaa");
a = 1;
}, 2000)
})
}
}
index.spec.js
var assert = require("assert");
var SetA = require("./index")
a = 0;
before(function() {
SetA.setA();
});
it('a should be set to 1', function() {
assert(a === 1);
});
测试用例
如何使 before 块同步,以便它仅在完成执行后才移动到 It 块?
解决方案
Mocha 理解 Promise,因此您应该能够返回由以下生成的 Promise SetA
:
before(function() {
return SetA.setA();
});
还要查看您的功能SetA
-您永远不会解决该承诺。你需要类似的东西:
module.exports = {
setA: function () {
return new Promise(function (resolve) { //<< resolve
setTimeout(function () {
console.log("aaaa");
a = 1;
resolve() //<< call resolve when you're done
}, 2000)
})
}
}
推荐阅读
- angular - 引导程序的导航药丸不适用于角度
- laravel - 使用警卫登录正在重定向到空白页面
- android - 无法从 Android Studio 中的布局中引用任何 ID
- python - 更改循环提示
- c# - 此类型名称中的 #(哈希)是什么意思?
- php - 我可以通过检查我的数据库有多少行来获得 SQL 注入吗?
- angular - ie11中的Angular ngModel选择
- database - 如何将访问备份为压缩文件?
- javascript - 如何使用 Google Apps 脚本对 SaxoTrader 进行身份验证
- python - 如何将整个numpy数组作为python中的参数传递给用户定义的函数?