Mocha的基本功能'describe/before/it'是如何实现的?

How is Mocha's basic functions 'describe/before/it' implemented?

我对 JS 有点陌生,对 Mocha 非常陌生,所以如果这是一个愚蠢的问题,我深表歉意...

我最近开始使用 Mocha,因为我正处于一个新的副项目的早期阶段。顺便在本地安装了mocha,npm i mocha --save-dev.

我开始考虑是否应该像 mocha 一样实现我的项目的某些部分,因为我很高兴它很容易上手。问题是我不知道他们是如何设置的。我已经查看了 GitHub 上的一些代码,但想要一个高级摘要。

这是我的 test.js 文件

const app = require('../src/app');
const assert = require('assert');

describe('my app', function(){

    it('does something cool', function(){
        assert.strictEqual(app.foo(), true);
    })
});

我很困惑,因为我在那里没有 const mocha = require('mocha');,但 VS Code 仍然可以识别 describe beforeit 等标识符。当我将鼠标悬停在 describe 上时,VS Code 甚至告诉我它是 var describe: Mocha.SuiteFunction.

这段代码是如何工作的,更不用说使用 IntelliSense 了?我期待必须做类似 mocha.describe().

的事情

mocha 加载测试文件时,会将其添加到 global 上下文中。

VS Code even tells me when I hover on describe that it's var describe: Mocha.SuiteFunction

您的项目可能安装了 @types/mocha 包。 Intellisense 直到我 运行 npm install --save-dev @types/mocha.

才出现