React native 使用react本机滚动条时Jest失败
例如,从react navigation导入平面列表时,我的测试失败,如果我从react native导入平面列表,它将正常工作。我的组件如下所示:React native 使用react本机滚动条时Jest失败,react-native,jestjs,react-navigation,React Native,Jestjs,React Navigation,例如,从react navigation导入平面列表时,我的测试失败,如果我从react native导入平面列表,它将正常工作。我的组件如下所示: import React from 'react'; import { Text, View } from 'react-native'; import { FlatList } from 'react-navigation'; const renderItem = ({ item }) => ( <View> &l
import React from 'react';
import { Text, View } from 'react-native';
import { FlatList } from 'react-navigation';
const renderItem = ({ item }) => (
<View>
<Text>{item}</Text>
</View>
);
const MyList = () => (
<FlatList data={['a', 'b', 'c']} renderItem={renderItem} />
);
export default MyList;
import React from 'react';
import renderer from 'react-test-renderer';
import MyList from '../MyList';
describe('MyList component', () => {
it('renders correctly', () => {
const component = renderer.create(<MyList />);
const tree = component.toJSON();
expect(tree).toMatchSnapshot();
});
});
从“React”导入React;
从“react native”导入{Text,View};
从“反应导航”导入{FlatList};
常量renderItem=({item})=>(
{item}
);
常量MyList=()=>(
);
导出默认MyList;
我的测试是这样的:
import React from 'react';
import { Text, View } from 'react-native';
import { FlatList } from 'react-navigation';
const renderItem = ({ item }) => (
<View>
<Text>{item}</Text>
</View>
);
const MyList = () => (
<FlatList data={['a', 'b', 'c']} renderItem={renderItem} />
);
export default MyList;
import React from 'react';
import renderer from 'react-test-renderer';
import MyList from '../MyList';
describe('MyList component', () => {
it('renders correctly', () => {
const component = renderer.create(<MyList />);
const tree = component.toJSON();
expect(tree).toMatchSnapshot();
});
});
从“React”导入React;
从“反应测试渲染器”导入渲染器;
从“../MyList”导入MyList;
描述('MyList component',()=>{
它('正确渲染',()=>{
const component=renderer.create();
const tree=component.toJSON();
expect(tree.toMatchSnapshot();
});
});
我收到的错误消息如下:
我通过以下方式模拟滚动条解决了这个问题:
jest.mock('react-navigation', () => ({
FlatList: 'FlatList',
}));
如果同时使用SectionList和/或ScrollView,则可以使用相同的方式添加它们:
jest.mock('react-navigation', () => ({
ScrollView: 'ScrollView',
SectionList: 'SectionList',
}));