Я использую исходный код реагирования из git для зависимости от проекта, я помещаю источник RN во внешний каталог (вместо node_modules) и добавляю его в extraNodeModules в rn-cli.js, чтобы упаковщик RN могнайти все источники правильно.но при запуске jest не удалось найти встроенные компоненты RN.
тестовый файл:
import { View } from 'react-native';
import React from 'react';
import mockCamera from '../__mocks__/camera';
import renderer from 'react-test-renderer';
jest.mock('react-native-camera', () => mockCamera);
var TableIDInputer = props => <View />;
test('renders correctly', () => {
const component = renderer.create(<TableIDInputer />);
let tree = component.toJSON();
expect(tree.type).not.toBe('b');
expect(tree).toMatchSnapshot();
});
результат теста:
● правильно отображает
Cannot find module 'View' from 'react-native-implementation.js'
146 | },
147 | get View() {
> 148 | return require('View');
149 | },
150 | get ViewPagerAndroid() {
151 | return require('ViewPagerAndroid');
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
at Object.get View [as View] (../../libs/react-native/Libraries/react-native/react-native-implementation.js:148:12)
at TableIDInputer (__tests__/test-component.js:7:31)
at mountIndeterminateComponent (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:4137:15)
at beginWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:4541:16)
, поскольку компонент View
предоставляется haste module
, который был реализован ранее @providesModule
, но сегодня кажется, что он заменен новым механизмом, поэтому я сомневаюсь, чтоэто вызвало провал теста ??
env info: jest: ^ 22.4.3 response-native: 2018-5-31 6e359c4589b0627de59332ce56fe28804425a609