我使用節點js工具進行visual studio 2015,我正在爲本地環境中的javascript和jquery編寫摩卡測試,我正在使用karma和chrome運行測試和一切工作正常,但由於某種原因,我想用jsdom能夠運行節點js的測試,而不使用業力或瀏覽器,但其中一個jquery插件內部正在做一個選項(新選項)的實例,並使用jsdom我得到的參考錯誤選項沒有從業障定義我沒有得到任何錯誤,錯誤似乎明顯業力是使用一個真正的瀏覽器,其中的選項定義和jsdom不是一個真正的瀏覽器,有什麼辦法讓我的測試工作?使用jsdom調試測試我發現HTMLOptionElement附加到由jsdom創建的窗口對象,但可能接口未完全實現,這就是新選項無法使用的原因。jsdom - 運行我的摩卡測試時未定義選項
下面是測試文件
if (global.window) {
window.jQuery = window.$ = require('jquery');
} else {
require('jsdom-global')();
global.jQuery = global.$ = require("jquery");
}
var chai = require('chai');
var assert = chai.assert;
var expect = chai.expect;
var should = chai.should();
chai.use(require('chai-jquery'));
chai.use(require('chai-spies'));
var sourceFile = require('path_to_js_file');
describe('Test',() => {
it('this is not passing',() => {
var x = new Option;
expect(1).to.equal(1);
});
it('this is passing',() => {
document.body.innerHTML = '<input id="name"/>';
sourceFile.init();
expect($("#name").is(":focus")).to.equal(true);
});
});
的代碼和我的源文件看起來像這樣
function init() {
$('#name').focus();
}
module.exports = {
init
};
我得到的錯誤是:
ReferenceError: Option is not defined
謝謝