2017-05-19 22 views
1

DOM 요소가 실행될 때마다 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하지 않기 때문에, 다음 (아직)를을 지원하는 알림 데이터 집합 속성에는 DOMf 콘텐츠를 삽입하는 편리한 polyfill도 있습니다. - https://www.npmjs.com/package/jsdom-mount