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
before
和 it
等标识符。当我将鼠标悬停在 describe
上时,VS Code 甚至告诉我它是 var describe: Mocha.SuiteFunction.
这段代码是如何工作的,更不用说使用 IntelliSense 了?我期待必须做类似 mocha.describe()
.
的事情
mocha 加载测试文件时,会将其添加到 global
上下文中。
- 在这里看到:
suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self)
(注意这里的 global
论点),
- 此处处理:
suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) {})
(注意 context
是 suite.emit
的 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
.
才出现
我对 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
before
和 it
等标识符。当我将鼠标悬停在 describe
上时,VS Code 甚至告诉我它是 var describe: Mocha.SuiteFunction.
这段代码是如何工作的,更不用说使用 IntelliSense 了?我期待必须做类似 mocha.describe()
.
mocha 加载测试文件时,会将其添加到 global
上下文中。
- 在这里看到:
suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self)
(注意这里的global
论点), - 此处处理:
suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) {})
(注意context
是suite.emit
的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
.