2017-05-19 20 views
1

dom要素が実行されているときにいつでも更新するES6関数をテストしようとしています。現在、HTMLページがロードされていないので、空のノードリストを取得しています。これを純粋にJESTでテストするアプローチは何ですか?JESTでDOM操作をテストする方法

jest.dontMock('../scripts/taskModel'); 
import Request from '../__mocks__/request'; 
import Task from '../scripts/taskModel'; 

describe('taskModel',() => { 
    it('Should initialize with no friends items', function() { 
     expect(document.querySelectorAll('.panel-block').length).toBe(1); // THIS IS ALWAYS RETURNS EMPTY NODELIST 
     var task = new Task(); 
     task.index(); 
     expect(document.querySelectorAll('.panel-block').length).toBeGreaterThanOrEqual(6); // THIS IS ALWAYS RETURNS EMPTY NODELIST 
    }); 
}); 

答えて

1

あなたはあなたのコードで必要なマークアップを注入する必要があり

document.body.innerHTML = '<div id="test"><div class="panel-block"></div>....</div>' 
1

データセットプロパティは、テスト中のJSによって使用されている場合jsdomにはないので、その後、(まだ)サポートしていることを思い出させますデータセット属性には便利なポリフィルがあり、DOMコンテンツを挿入します - https://www.npmjs.com/package/jsdom-mount