Mocha/Chai 节点测试中“before”和“describe”块中的操作顺序
Order of Operations in `before` and `describe` blocks in Mocha/Chai Node Tests
为了尝试理解我的一个 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
块中,我在数据库中查找它。当我 运行 遇到文档在创建之前被查找的问题时,我决定做一些更简单的测试。因此,您在上面看到的。
这是因为 "before" 块仅在 之前 和 执行它块
尝试执行此操作:
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 ------------');
});
});
请参阅此 post 了解更多信息:
https://gist.github.com/samwize/8877226
为了尝试理解我的一个 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
块中,我在数据库中查找它。当我 运行 遇到文档在创建之前被查找的问题时,我决定做一些更简单的测试。因此,您在上面看到的。
这是因为 "before" 块仅在 之前 和 执行它块
尝试执行此操作:
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 ------------');
});
});
请参阅此 post 了解更多信息: https://gist.github.com/samwize/8877226