首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在react-redux连接组件中执行单元测试时出错

在react-redux连接组件中执行单元测试时出错
EN

Stack Overflow用户
提问于 2019-01-07 22:30:17
回答 1查看 706关注 0票数 0

我正在尝试用jest-enzyme测试连接的组件(react-redux)。我正在使用react-redux-mock store。当我运行我的测试来查找组件中的一个div时,它给出了这个错误。

Invariant Violation: Passing redux store in props has been removed and does not do anything. To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React-Redux's Provider and specific components like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. You may also pass a {context : MyContext} option to connect

我只是挂载和测试了组件,没有重复,它可以工作,但我想做一个>浅层的测试。

代码语言:javascript
复制
describe("Input Component", () => {
let wrapper;
let store;
beforeEach(() => {
    store = mockStore(initialState);

    wrapper = shallow(<Input store={store} />);
});

it("should rendder without error", () => {
    expect(wrapper.find("div")).toHaveLength(1);
});
});
EN

回答 1

Stack Overflow用户

发布于 2019-01-07 22:47:16

如何导入组件?

例如,如果你用import App from './yourpath/ App‘导入它,你实际上持有的是connect()返回的包装器组件,而不是App组件本身。

为了能够在不处理装饰器的情况下测试App组件本身,还必须导出未修饰的组件:

代码语言:javascript
复制
import { connect } from 'react-redux'

// Use named export for unconnected component (for tests)
export class App extends Component {
/* ... */
}

// Use default export for the connected component (for app)
export default connect(mapStateToProps)(App)

并将其导入到您的测试文件中,如下所示:

代码语言:javascript
复制
import { App } from './yourpath/App'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54076285

复制
相关文章

相似问题

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