node.js - Mocha/Chai 节点测试中的“之前”和“描述”块中的操作顺序
问题描述
为了尝试了解我的一个 Mocha 测试的执行顺序(我看到函数执行乱序),我创建了以下简单的测试用例:
describe("methods", function () {
before(async function () {
console.log('---------- BEFORE ------------');
let sum = 1 + 2;
console.log('sum: ', sum);
});
describe("test case", async function () {
console.log('---------- AFTER ------------');
});
});
同样,我想在这里检查的是操作顺序。果然,在这种情况下,打印到控制台的所有内容都是------------ AFTER ------------
. 该before
块的日志记录根本不会显示在控制台中。
为什么是这样?我在这里想念什么?
在我的实际测试用例中,我使用before
块来创建和保存文档。然后在下一个describe
块中,我在数据库中查找它。当我遇到在创建之前查找文档的问题时,我决定做一些更简单的测试。因此,您在上面看到了什么。
解决方案
这是因为“之前”块在IT块之前执行
尝试执行此操作:
describe("methods", function () {
before(async function () {
console.log('---------- BEFORE ------------');
let sum = 1 + 2;
console.log('sum: ', sum);
});
it('should be a test', function(){
console.log('test');
});
describe("test case", async function () {
console.log('---------- AFTER ------------');
});
});
有关更多信息,请参阅此帖子: https ://gist.github.com/samwize/8877226
推荐阅读
- javascript - 乘法函数
- excel - Excel过滤多列
- reactjs - 我们如何键入一个变量,它是 TypeScript 中的一个方法?(使用 Chart.js)
- memory-management - 如何读取 JFR 文件?
- linux - 用于查看用户存在及其状态的 Bash 脚本(锁定或解锁,如 passwd -S)
- swift - 即使正确设置了所有权限,Cloudkit 也会不断给出创建权限错误
- c# - 框架导航 UWP
- html - 如何嵌入推文?
- swift - Drawing string in layer, the string displayed is fuzzy, how do i make ti more smooth
- javascript - 如何根据加载的网页调整框的大小和不透明度?