猿问

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

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


我最近开始与 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. 当我将鼠标悬停在var describe: Mocha.SuiteFunction上时describe,VS Code 甚至告诉我。


这段代码是如何工作的,更不用说智能感知了?我期待必须做类似的事情mocha.describe()。


胡子哥哥
浏览 273回答 1
1回答

小唯快跑啊

当 mocha 加载测试文件时,它会将其添加到global上下文中。在这里看到:(suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self)注意global这里的论点),这里处理:suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) {})(注意,context是global从suite.emit)当我将鼠标悬停在describe它的var 描述上时,VS Code 甚至告诉我:Mocha.SuiteFunction您的项目可能已@types/mocha安装包。直到我跑了 Intellisense 才出现npm install --save-dev @types/mocha。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答