我正在写摩卡单元测试Typescript代码包含Jquery。我正在使用jsdom获取文档对象。当我将我的TS代码编译为JS并运行测试时,它会引发错误[ReferenceError:$未定义]。
我的打字稿代码是在这里
export function hello(element) : void {
$(element).toggleClass('abc');
};
我的单元测试代码如下:
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();
});
});
当我运行摩卡测试显示
<failure message="$ is not defined"><![CDATA[ReferenceError: $ is not defined ...
]]></failure>
使用全球也试过。$ = require(“jquery”);但不起作用。
这有点无关,但你应该考虑内置的功能,角度提供了与DOM工作。你不应该需要jQuery来进行dom操作。 – toskv