redux saga没有派遣行动

时间:2017-12-06 13:50:28

标签: enzyme jest redux-saga

我试图通过安装智能连接组件来进行集成测试。 我的智能组件的componentDidMount范围内的获取操作发送得很好,我的Saga采取了它。虽然它应该采取成功的行动,但它并没有。 这是我的测试代码:

   import React from 'react'
import { Provider } from 'react-redux'
import configureMockStore from 'redux-mock-store'
import MockAdapter from 'axios-mock-adapter'
import Enzyme,{ mount,render } from 'enzyme'
import Tasks from '../containers/tasks.jsx'
import createSagaMiddleware from 'redux-saga'
import axios from "axios";
import Adapter from 'enzyme-adapter-react-16';
import mySaga from '../actions/tasksSaga'
import { createStore, combineReducers, applyMiddleware } from 'redux'
import reducer from '../reducers'


Enzyme.configure({ adapter: new Adapter() });

describe('App', () => {
  // create the saga middleware
    const sagaMiddleware = createSagaMiddleware()
    const mock = new MockAdapter(axios)
    const state = {
      tasksReducer:{
        tasks:[]
      },
      uiReducer :{

      }
    };

    const todos = [
      {
        id: 1,
        title: 'todo1',
        description: 'nice'
      },
      {
        id: 2,
        title: 'todo2',
        description: 'nice'
      }
    ]

    beforeAll(() => {
      mock.onGet('http://localhost:9001/tasks').reply(200, {tasks:todos})
    })

    it('renders an App container', () => {
      const store = createStore(
        reducer,
        applyMiddleware(sagaMiddleware),
      )
      sagaMiddleware.run(mySaga)
      const wrapper = mount(
        <Provider store={store}>
          <Tasks />
        </Provider>
      )

      wrapper.instance().forceUpdate()

      expect(wrapper.find('Task')).toHaveLength(3)

    })
  })

虽然数据很好,但我的成功动作从未被调用过。

0 个答案:

没有答案