React native 找不到“;商店「;在「;连接(家庭)“;在react native jest单元测试中?

React native 找不到“;商店「;在「;连接(家庭)“;在react native jest单元测试中?,react-native,unit-testing,jestjs,enzyme,React Native,Unit Testing,Jestjs,Enzyme,我是个新来的本地人。尝试编写单元测试用例。但我得到以下错误 我的测试用例失败如下 在“连接(主)”上下文中找不到“存储”。将根组件包装在中,或传递自定义的React上下文pr 连接选项中的ovider to和相应的React context consumer to Connect(主页) home.js /*eslint禁用导入/无无关依赖项*/ /*eslint禁用无未使用的变量*/ 从“React”导入React,{Component}; 从“react native paper”导入{A

我是个新来的本地人。尝试编写单元测试用例。但我得到以下错误

我的测试用例失败如下

在“连接(主)”上下文中找不到“存储”。将根组件包装在中,或传递自定义的React上下文pr 连接选项中的ovider to和相应的React context consumer to Connect(主页)

home.js

/*eslint禁用导入/无无关依赖项*/
/*eslint禁用无未使用的变量*/
从“React”导入React,{Component};
从“react native paper”导入{ActivityIndicator};
进口{
视图、文本、平面列表、可触摸不透明度、,
}从“反应本机”;
从'react redux'导入{connect};
//从“@expo/vector icons”导入{Ionicons};
从“./style”导入样式;
从“../../reducer/reducer”导入{listRepos};
从“../../common/errorAlertComponent/ErrorAlert”导入ErrorAlert;
类Home扩展组件{
componentDidMount(){
this.props.listRepos();
}
FlatListItemSeparator=()=>(
)
renderItem=({item})=>(
this.props.navigation.navigate('ThumbnailViewScreen'{
albumID:item.id,
})}style={style.listRow}>
{item.title}
);
render(){
const{error,loading,albums}=this.props;
如果(错误){
返回;
}
如果(装载){
返回(
);
}
返回(
);
}
}
常量mapStateToProps=(状态)=>{
const storedRepositories=state.albums.map((repo)=>({key:repo.id.toString(),…repo}));
返回{
专辑:storedRepositories,
加载:state.loading,
错误:state.error,
};
};
const mapDispatchToProps={
listRepos,
};

导出默认连接(mapStateToProps、mapDispatchToProps)(主页)如果您想测试连接的组件,应该使用redux mock store包来模拟redux store


如果您想测试连接的组件,应该使用redux mock store包来模拟redux store


您可能已经在App.js中初始化了一个存储,请在此处使用该代码

例如,我不知道您使用了什么中间件和reducer,但您可以了解一下这段代码

import React from 'react';

import renderer from 'react-test-renderer';
import {Provider} from 'react-redux';
import {createStore, applyMiddleware} from 'redux';
import ReduxThunk from 'redux-thunk';
import reducersAll from '../../reducers';

const store = createStore(reducersAll, {}, applyMiddleware(ReduxThunk));

test('renders correctly', () => {
  const navigation = {state: {params: ''}, getParam: jest.fn()};
  const tree = renderer
    .create(
      <Provider store={store}>
        <Home navigation={navigation} />
      </Provider>,
    )
    .toJSON();
  expect(tree).toMatchSnapshot();
});
从“React”导入React;
从“反应测试渲染器”导入渲染器;
从'react redux'导入{Provider};
从“redux”导入{createStore,applyMiddleware};
从“redux thunk”导入redux thunk;
从“../../reducers”导入reducersAll;
conststore=createStore(reducersAll,{},applyMiddleware(ReduxThunk));
测试('正确呈现',()=>{
常量导航={state:{params:''},getParam:jest.fn()};
常量树=渲染器
.创造(
,
)
.toJSON();
expect(tree.toMatchSnapshot();
});

您可能已经在App.js中初始化了一个存储,请在此处使用该代码

例如,我不知道您使用了什么中间件和reducer,但您可以了解一下这段代码

import React from 'react';

import renderer from 'react-test-renderer';
import {Provider} from 'react-redux';
import {createStore, applyMiddleware} from 'redux';
import ReduxThunk from 'redux-thunk';
import reducersAll from '../../reducers';

const store = createStore(reducersAll, {}, applyMiddleware(ReduxThunk));

test('renders correctly', () => {
  const navigation = {state: {params: ''}, getParam: jest.fn()};
  const tree = renderer
    .create(
      <Provider store={store}>
        <Home navigation={navigation} />
      </Provider>,
    )
    .toJSON();
  expect(tree).toMatchSnapshot();
});
从“React”导入React;
从“反应测试渲染器”导入渲染器;
从'react redux'导入{Provider};
从“redux”导入{createStore,applyMiddleware};
从“redux thunk”导入redux thunk;
从“../../reducers”导入reducersAll;
conststore=createStore(reducersAll,{},applyMiddleware(ReduxThunk));
测试('正确呈现',()=>{
常量导航={state:{params:''},getParam:jest.fn()};
常量树=渲染器
.创造(
,
)
.toJSON();
expect(tree.toMatchSnapshot();
});