当用酶和摩卡测试反应组分时,_this.store.getState不是函数

时间:2017-01-27 16:55:34

标签: reactjs testing redux mocha enzyme

我试图用酶和摩卡测试React组件如下

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}})
  })
})

实际上没有编写测试,因为它在声明包装器时失败了

错误消息:TypeError:_this.store.getState不是函数

不知道问题是什么,也无法找到解决这个问题的方法!

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:1)

此错误表示存储无法正确获取状态。 我建议使用redux-mock-store来模拟商店 并导入configureStore

FileOutputStream imageOutFile = new FileOutputStream("path/filename");
imageOutFile.write(byteArray);
imageOutFile.close();

然后通过执行此操作来模拟状态

import configureStore from 'redux-mock-store';

您可以继续使用提供程序

包装组件
    const initialState = { id: 1 };
    const mockStore = configureStore();

答案 1 :(得分:0)

此外,代码示例中不应该chai.user()chai.use()吗?