• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

enzyme를 사용하는데 있어서 문제가 있습니다.

19.07.10 22:00 작성 조회수 147

1

이전 분이 올려주신 질문과 동일한 에러가 납니다.

원인은 두가지가 있었는데요.

 

1. 첫번째 setup.js 파일을 __test__ 디렉토리에서 테스트 파일로 인식하는듯 하다.

2. 두번째 shallow(<Text>{test}</Text>).text() 의 반환값이 <TouchableText />로 나온다

 

 

첫번째는 setup.js파일을 __test__디렉토리 밖으로 빼줌으로써 해결했구요.

두번째는 shallow(<Text>{test}</Text>).text() 는 잘 동작하지 않지만, shallow(<div>{test}</div >).text() 는 일단 잘 동작하는 걸로 확인 되었습니다.

 

그래서 우선 제가 예상하기론 react-native와 enzyme의 버전 호환성 문제가 아닐까 싶기도 하구요. 또는 jest와의 버전 호환성 문제가 아닐까 생각이 됩니다.

 

아래는 저의 버전 상태입니다.

-------------------

"react": "16.8.3",
"react-native": "0.59.9"
 
 
"@babel/core": "7.5.4",
"@babel/runtime": "7.5.4",
"babel-jest": "24.8.0",
"enzyme": "^3.10.0",
"enzyme-adapter-react-16": "^1.14.0",
"jest": "24.8.0",
"metro-react-native-babel-preset": "0.55.0",
"react-dom": "^16.8.6",
"react-test-renderer": "16.8.3"
 
 

답변 7

·

답변을 작성해보세요.

0

찰쓰님의 프로필

찰쓰

질문자

2019.08.13

저도 강사님과 동일하게

{ type: 'Text', props: {}, children: [ 'some text' ] }

라고 출력이 됩니다.

0

안녕하세요.  테스트코드에 아래를 추가하여 다시한번 확인 부탁드립니다.

제 환경에서는 

{ type: 'Text', props: {}, children: [ 'some text' ] }

라고 출력됩니다.

 

import TestRenderer from 'react-test-renderer';
 
 
const testRenderer = TestRenderer.create(<Text>{expected}</Text>);
console.log(testRenderer.toJSON());
 
 
 
 

0

찰쓰님의 프로필

찰쓰

질문자

2019.07.12

저도 깃헙에 올리신 이슈글 봤습니다 ㅎㅎ. 답변을 봐도 왜 저런 답변을 한건지 이해가 안가네요 ㅠ

일단 TouchableText 자체를 찾을수도 없고, import 할수도 없습니다

알아봐주셔서 감사합니다.

0

찰쓰님의 프로필

찰쓰

질문자

2019.07.12

답변 너무나 감사합니다.

 

제 환경에서는 

    <TouchableText forwardedRef={{...}} accessible={true} allowFontScaling={true} ellipsizeMode="tail">

      some text

    </TouchableText>

 

이렇게 나오네요

0

혹시, shallow(<Text>{test}</Text>).debug() 는 어떤 값을 리턴하는지 확인 가능하신가요?

 

제 환경에서는 

<Text>some text</Text>

 

라고 출력됩니다.

0

안녕하세요. 두 문제에 대해서 조금더 검토하고 다시 답변을 드리도록 하겠습니다. 아래 김정한님의 질문으로, 인지는 하고 있는 문제인데, 아직 명확한 원인을 찾지 못하고 있네요. 죄송합니다.

0

찰쓰님의 프로필

찰쓰

질문자

2019.07.10

근데.. 버전 이래저래 낮춰봐도 딱히 해결이 안되네요 ㅠ