2017-01-27 149 views
2

林嘗試測試與酶和摩卡一個陣營組分如下_this.store.getState不是函數時測試反應組分與酶和摩卡

import { mount, shallow } from 'enzyme'; 
import React from 'react'; 
import chai, { expect } from 'chai' 
import chaiEnzyme from 'chai-enzyme' 
import sinon from 'sinon' 

import MyComponent from 'myComponent' 

chai.use(chaiEnzyme()) 
describe('MyComponent',() => { 
    const store = { 
    id: 1 
    } 
    it ('renders',() => { 
    const wrapper = mount(<MyComponent />, {context: {store: store}}) 
    }) 
}) 

沒有實際寫入的測試,因爲它失敗在包裝

錯誤消息的

聲明:類型錯誤:_this.store.getState不是一個函數

不知道是什麼問題,並不能找到任何解決這個!

任何幫助將是偉大的!

+0

你實際上需要通過redux-store。您不能只創建一個常量並將其作爲商店傳遞。 –

回答

0

另外,你的代碼示例中不應該chai.user()chai.use()

0

此錯誤表示存儲無法正確獲取狀態。 我會建議嘲諷使用redux-mock-store 和進口configureStore商店

import configureStore from 'redux-mock-store'; 

然後通過這樣

const initialState = { id: 1 }; 
    const mockStore = configureStore(); 

嘲笑的狀態,你可以通過與供應商包裝的組件繼續

import { Provider } from 'react-redux'; // add this to the top of your file 

const wrapper = mount(
    <Provider store={mockStore(initialState)}> 
    <MyComponent /> 
    </Provider>, 
);