如何测试是否将canvas元素添加到DOM?
我有一个Jasmine测试脚本,它使用jsdom创建DOM并测试是否添加了canvas元素。
在库文件中,我有原型函数将元素添加到DOM。
我收到错误 ReferenceError:来自Jasmine的文档未定义 ,指向CustomLibrary.prototype.create函数。
有没有其他方法可以测试这个?
Jasmine test.js文件:
var jsdom = require('jsdom');
var CustomLibrary = require('../lib/custom.js');
describe('Custom Library', function () {
'use strict';
var document;
beforeEach(function (done) {
jsdom.env({
html: '<html><body><div id="someid"></div></body></html>',
done: function (err, window) {
if (err) console.log(err);
document = window.document;
done();
}
});
describe('Create', function () {
beforeEach(function () {
var custom = new CustomLibrary();
custom.create();
});
it('should create a canvas element inside of container', function () {
var canvasElements = document.getElementById('someid').getElementsByTagName('canvas');
expect(canvasElements.length).toEqual(1);
});
});
});
自定义库文件:
var CustomLibrary = (function () {
function CustomLibrary() {
this.create();
}
CustomLibrary.prototype.create = function() {
var element = document.getElementById('someid');
var canvas = document.createElement("canvas");
element.appendChild(canvas);
};
return CustomLibrary;
})();
if ( typeof module !== 'undefined' && module.hasOwnProperty('exports') )
{
module.exports = CustomLibrary;
}
答案 0 :(得分:0)
我通过删除
解决了这个问题var document;
来自Jasmine测试文件的。