2017-01-27 10 views
2

Im пытаясь проверить Реагировать компонент с ферментом и мокко следующим_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

Вам действительно нужно пройти редукционный магазин. Вы не можете просто создать константу и передать ее как хранилище. –

ответ

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>, 
);