TypeError:无法读取JEST和酶测试中未定义的属性“ subroute”

时间:2018-12-20 14:02:56

标签: reactjs jestjs enzyme

我正在通过 create-react-app样板使用果酱和酶库进行反应测试

随着套件和测试的运行,我遇到上述错误。 找不到任何解决方案。 让我知道是否有解决办法。

TypeError: Cannot read property 'subroute' of undefined

1 个答案:

答案 0 :(得分:0)

是的,我通过将道具传递到connected component中来渲染它。

因此,出于此目的,我们需要将 store 元素传递到 Provider 中,并将组件安装到其中。

所以我们需要了解的是:

安装 :它将呈现道具及其相关组件的深层元素

Shallow :它将渲染顶层的第一个组件,而不像我以前使用浅层那样处理深连接的组件。

以下是完整解决方案的代码:

import { mountWrap } from '../contextWrap'
import { Provider } from 'react-redux'
import sinon from 'sinon'
import Login from '../components/Login/'
// import makeStore from '../redux/createStore'

import React from 'react'
import configureMockStore from 'redux-mock-store'
import thunk from 'redux-thunk'

const mockStore = configureMockStore([ thunk ])
const authDetails = {
  'authDetails' : {
    Terms :''
  }
}

const match = {
  params : {}
}
let actionSpy = sinon.spy()
let actionHistorySpy = sinon.stub({})
let authDetails_ = sinon.stub(authDetails)
let store
let component
/* eslint-disable */
describe('tests for MyContainerComponent', () => {
  beforeEach(() => {
    store = mockStore(authDetails)
    component = mountWrap(<Provider store={ store }>
      <Login history={actionHistorySpy} match={match} setGlobalLoaderStatus= {actionSpy} userDetail={authDetails_} />
     </Provider>)
  })

  it('renders container', () => {
    console.log(component.debug())
  })
})