gpt4 book ai didi

reactjs - _this.store.getState 在使用 enzyme 和 Mocha 测试 react 组件时不是函数

转载 作者:行者123 更新时间:2023-11-28 19:59:06 25 4
gpt4 key购买 nike

我正在尝试使用 enzyme 和 Mocha 测试 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 不是一个函数

不知道问题出在哪里,也找不到任何解决方法!

任何帮助都会很棒!

最佳答案

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

import configureStore from 'redux-mock-store';

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

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

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

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

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

关于reactjs - _this.store.getState 在使用 enzyme 和 Mocha 测试 react 组件时不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41899128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com