2016-10-24 3 views
0

Как проверить, добавлен ли элемент холста в DOM?Ошибка документа TDD: проверьте, был ли добавлен элемент в DOM

У меня есть тестовый скрипт Jasmine, который использует jsdom для создания DOM и проверки, добавлен ли элемент холста.

В файле библиотеки у меня есть функция прототипа для добавления элемента в DOM.

Я получаю сообщение об ошибке ReferenceError: документ не определен от жасмин, который указывает на функцию 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; 
} 

ответ

0

Я решил эту проблему путем удаления

var document; 

из тестового файла жасмин.

Смежные вопросы