小编Adi*_*iti的帖子

如何使用Mocha对使用Typescript的Jquery进行单元测试时修复"$ is not defined"错误?

我正在为包含Jquery的Typescript代码编写Mocha单元测试.我正在使用jsdom来获取文档对象.当我将我的TS代码编译为JS并运行测试时,它会抛出一个错误[ReferenceError:$未定义].

我的Typescript代码在这里

export function hello(element) : void {
    $(element).toggleClass('abc');
};
Run Code Online (Sandbox Code Playgroud)

我的单元测试代码如下:

import {hello} from '../src/dummy';

var expect = require('chai').expect;
var jsdom = require('jsdom');
var document = jsdom.jsdom();
var window = document.defaultView;

var $ = require('jquery')(window);

describe('TEST NAME', () => {

    it('should run', (done) => {
        hello($('div'));
        done();
    });
});
Run Code Online (Sandbox Code Playgroud)

当我运行Mocha测试它显示

    <failure message="$ is not defined"><![CDATA[ReferenceError: $ is not defined ...
]]></failure>
Run Code Online (Sandbox Code Playgroud)

也尝试使用global.$ = require("jquery"); 但不起作用.

jquery unit-testing mocha.js jsdom typescript

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

jquery ×1

jsdom ×1

mocha.js ×1

typescript ×1

unit-testing ×1