Search
Duplicate

'RNCWebView' could not be found

Created time
2024/04/24 01:19
Last edited time
2024/05/29 01:50
Status
Done
tag

들어가기에 앞서

참고한 자료를 바탕으로 비전문가가 정리한 글이므로 오류가 있을 수 있습니다.
오류에 대한 피드백은 언제든지 환영합니다. 부디 댓글로 알려주시길 바랍니다. 감사합니다.

발생 원인

WebView를 이용한 지도 컴포넌트 렌더링 테스팅 중 아래와 같은 에러를 만났습니다.
Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNCWebView' could not be found. Verify that a module by this name is registered in the native binary. at invariant (node_modules/invariant/invariant.js:40:15) at Object.getEnforcing (node_modules/react-native/Libraries/TurboModule/TurboModuleRegistry.js:41:12) at Object.<anonymous> (node_modules/react-native-webview/lib/NativeRNCWebView.js:2:36) at Object.<anonymous> (node_modules/react-native-webview/lib/WebView.ios.js:63:1)
TypeScript
복사
추정되는 원인으로는 jest가 'RNCWebView' 모듈을 찾지 못했기 때문에 위 에러가 발생하는 것 같습니다.

해결 방법

관련 자료를 찾던 중 위와 같이 jest.mock을 사용하여 원래 구현 대신 가짜 구현을 사용하여 해결하는 방법을 찾았습니다. 저는 위 코드를 참고하여 아래와 같이 작성했습니다.
jest.mock('react-native-webview', () => { const { View } = require('react-native') return { WebView: (props: { testID: any; source: { html: any } }) => ( <View testID={props.testID}>{props.source.html}</View> ), } })
TypeScript
복사
그 결과, 정상적으로 테스트를 통과하였습니다.

참고

2934
issues