首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用酶和摩卡测试react组件时,_this.store.getState不是一个函数

使用酶和摩卡测试react组件时,_this.store.getState不是一个函数
EN

Stack Overflow用户
提问于 2017-01-28 00:55:34
回答 2查看 3.8K关注 0票数 8

我正在尝试使用酶和摩卡测试一个React组件,如下所示

代码语言:javascript
复制
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}})
  })
})

我还没有实际编写测试,因为它在wrapper的声明中失败

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

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

任何帮助都是最好的!

EN

回答 2

Stack Overflow用户

发布于 2017-12-06 17:06:10

此错误意味着存储无法正确获取状态。我建议使用redux-mock-store和导入configureStore模拟商店

代码语言:javascript
复制
import configureStore from 'redux-mock-store';

然后通过这样做来模拟状态

代码语言:javascript
复制
    const initialState = { id: 1 };
    const mockStore = configureStore();

您可以继续使用provider包装您的组件

代码语言:javascript
复制
import { Provider } from 'react-redux'; // add this to the top of your file

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

Stack Overflow用户

发布于 2017-01-28 01:01:18

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41899128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档