Ek4*_*k4m 0 reactjs jestjs enzyme
我有 index.js 文件,其中包含:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App'
import * as serviceWorker from './serviceWorker';
import {combineReducers,createStore,compose,applyMiddleware} from 'redux'
import {Provider} from 'react-redux'
import thunk from 'redux-thunk'
import { HashRouter } from 'react-router-dom';
import playerReducer from './store/Player/PlayerReducers'
import cardReducer from './store/Cards/cardsReducer'
import playersReducer from './store/Players/PlayersReducer'
import stylesReducer from './store/Styles/StylesReducer'
import gameReducer from './store/Game/gameReducer'
const rootReducer = combineReducers({
player: playerReducer,
cards:cardReducer,
players:playersReducer,
styles:stylesReducer,
game:gameReducer
})
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(rootReducer, composeEnhancers(applyMiddleware(thunk)))
ReactDOM.render(
<Provider store={store}>
<HashRouter >
<App />
</HashRouter>
</Provider>
, document.getElementById('root'));
serviceWorker.unregister();
export default storeRun Code Online (Sandbox Code Playgroud)
我有 App.js 文件,其中包含:
import React, { PureComponent, Suspense } from 'react'
import {connect} from 'react-redux'
import './App.css'
import SignUp from './Register/SignUp'
import SignIn from './Register/SignIn'
import * as stylesActions from './store/Styles/StylesActions'
import Entrance from './components/Entrance/Entrance'
import Profile from './components/Profile/Profile'
import NotFound from './UI/NotFound/NotFound'
import Fallback from './UI/Fallback/Fallback'
import { Route, Switch } from 'react-router-dom'
const Lobby = React.lazy(() => import("./Lobby/Lobby"))
const Game = React.lazy(() => import('./containers/Game/Game'))
class App extends PureComponent {
render() {
return (
<div className="App"
data-test="App-component"
>
<Switch>
<Route path="/" exact render={() => (
<Suspense fallback={
<Fallback />
}>
<Entrance />
</Suspense>
)} />
<Route path="/auth/signup" exact component={SignUp}/>
<Route path="/auth/signin" exact component={SignIn}/>
<Route path="/lobby" exact render={() => (
<Suspense fallback={
<Fallback />
}>
<Lobby />
</Suspense>
)}/>
<Route path="/profile" exact component={Profile}/>
<Route path="/game" exact render={() => (
<Suspense fallback={
<Fallback />
}>
<Game />
</Suspense>
)} />
<Route component={NotFound} />
</Switch>
</div>
)
}
}
const mapDispatchToProps = (dispatch) => {
return {
onChangeMusicStatus:(arg) => dispatch(stylesActions.musicPaused(arg))
}
}
const mapStateToProps = (state) => {
return {
player: state.player,
styles:state.styles,
players:state.players
}
}
export default connect(mapStateToProps, mapDispatchToProps)(App)Run Code Online (Sandbox Code Playgroud)
当我尝试测试它给我这个错误
在“Connect(App)”的上下文中找不到“store”。要么将根组件包装在 a 中,要么在连接选项中将自定义 React 上下文提供者和相应的 React 上下文消费者传递给 Connect(App)。
小智 5
你使用的是什么版本的 react-redux,你能发布你的测试吗,如果你使用的是 react-redux 7,你必须用 Provider 包装你的文本组件:
const TestComponent = <Provider store={store}><App /></Provider>
your test code here...
Run Code Online (Sandbox Code Playgroud)
您也可以只导出App组件(不是连接的)并单独测试。
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |