2016-10-24 4 views
0

DOMにキャンバス要素が追加されているかどうかをテストするにはどうすればよいですか?TDDドキュメントエラー:要素がDOMに追加されたかどうかをテストします。

私はDOMを作成し、canvas要素が追加されたかどうかをテストするjsdomを使用ジャスミンのテストスクリプトを持っています。ライブラリファイルに

、私は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; 

を除去することによって、これを解決しました。

関連する問題