2017-02-25 9 views
2

나는 내 개인 프로젝트에서 100 % 코드 커버리지를 얻으려고 모험심과 노력을 기울이고 있습니다. 그리고 jest, enzymereact-native을 사용하여 클릭 이벤트를 시뮬레이트하는 방법을 설명하는 설명서가 없습니다.React Native Jest Enzyme Find and Press Component

<Screen.TopBar> 
    <Toolbar 
     leftElement="arrow-back" 
     onLeftElementPress={() => router.pop()} 
     centerElement={pageName} 
    /> 
</Screen.TopBar> 

이것은 상단 부분 일 뿐이며, 해당 요소에 대한 클릭을 시뮬레이션하려고합니다.

const wrapper = mount(
    <MockProvider store={store}> 
     <ThemeProvider uiTheme={uiTheme}> 
      <Category /> 
     </ThemeProvider> 
    </MockProvider> 
); 
expect(wrapper.find('Toolbar').length).toBe(1); 

는 오류가 발생합니다 :

ReferenceError: document is not defined 

    at Object.renderIntoDocument (node_modules/react-dom/lib/ReactTestUtils.js:73:15) 
    at renderWithOptions (node_modules/enzyme/build/react-compat.js:187:26) 
    at new ReactWrapper (node_modules/enzyme/build/ReactWrapper.js:94:59) 
    at mount (node_modules/enzyme/build/mount.js:19:10) 
    at Object.<anonymous> (app/screens/category/tests/Category.test.js:32:30) 

그래서 내 질문에 내가 도구 모음의 구성 요소의 버튼을 클릭 할 수 있도록 내가 도구 모음을 선택합니까 방법이다.

+0

'mount' 대신'shallow'를 사용했을 때 어떤 일이 일어 났습니까? –

+0

@ AndreasKöberle 문제는 얕은 것을 사용하면 전체 수명주기를 완전히 테스트 할 수없고'jest --coverage'를 실행할 때 귀하의 기능을 100 % 호스트하십시오 – jose920405

+0

https://blog.joinroot.com/mounting-react-native-components-with-enzyme-and-jsdom/ – jose920405

답변

1

마운트는 react-dom에서만 작동하며 react-native에서는 작동하지 않습니다.