TDD文档错误:测试元素是否被添加到DOM
TDD document error: Test if element was added to the DOM
如何测试画布元素是否添加到DOM?
我有一个Jasmine测试脚本,它使用jsdom来创建DOM并测试是否添加了画布元素。
在库文件中,我有将元素添加到DOM的原型函数。
我得到一个错误ReferenceError: document is not defined从Jasmine指向CustomLibrary.prototype.create函数。
是否有其他方法来测试这个?
茉莉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;
}
我通过删除
解决了这个问题var document;
相关文章:
- 如何判断何时将dom节点添加到文档中
- 向动态生成的DOM添加Angular自定义指令
- 如果移除并重新添加DOM元素,则ng单击绑定丢失
- 使用 Knockout 动态添加 dom 元素
- jquery使用$.on来添加dom元素
- 如何在 HTML 结构中添加 DOM 模型
- 如何强制.prepend()和.append()添加DOM对象,而不是文本
- AngularJS添加DOM元素
- 添加DOM视图太慢了,需要一种更好的方法来缓存一次视图并重用它供以后使用
- 带有模板的Dojo小部件,在小部件加载时更改模板(添加DOM元素)
- 添加 DOM 元素,什么是正确的方法
- 如何在画布上添加DOM对象
- 如何在每次迭代中添加DOM对象
- jQuery show()不是一个函数-用于添加DOM元素
- 只能添加dom元素,但不能删除它们
- 在单击按钮时动态添加DOM元素
- 添加 DOM 元素时获取通知
- 如何在React中添加dom
- 如何在Div背景中添加DOM图像对象
- 如何在按钮中添加DOM附加的功能