首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react脚本2.1.8 -> 3.0.0中断redux“连接”测试?

react脚本2.1.8 -> 3.0.0中断redux“连接”测试?
EN

Stack Overflow用户
提问于 2019-04-30 14:39:43
回答 1查看 58关注 0票数 0

按照这里提供的测试连接组件的简单指南,我已经通过了几个月的这种格式的测试:

代码语言:javascript
复制
import ConnectedFaultReport, {FaultReport} from [...];
describe('FaultReport (connected) component tests', () => {
  let container = shallow(<ConnectedFaultReport  />);
  it('Should render the Redux connected component', () => {
    expect(container.length).toEqual(1)
  });
})

在将react-脚本升级到3.0.0之后,我现在得到了一个可怕的结果:

代码语言:javascript
复制
Invariant Violation: Could not find "store" in the context of "Connect(FaultReports)..."

错误。我必须通过所有简单的连接测试和实现:

代码语言:javascript
复制
import { Provider } from "react-redux";
import configureMockStore from "redux-mock-store";

const mockStore = configureMockStore();
const store = mockStore({});

  describe('FaultReport (connected) component tests', () => {
    let container = shallow(
      <Provider store={store}>
        <ConnectedFaultReport />
      </Provider>
    );
    it('Should render the Redux connected component', () => {
      expect(container.length).toEqual(1)
    });
  })

我对redux-mock-store没有意见,但这是大量的搅动和重构。在升级react-scripts之后,我是唯一一个看到这个的人吗?

@markerikson:我之前并没有把store作为道具。实施的升级如下(这次我保存了ncu的输出,因为在一个单独的项目上发生了相同的事情)。刚刚注意到react-redux也被撞到了一个完整的版本.

代码语言:javascript
复制
react-redux               ^6.0.1  →   ^7.0.3
react-scripts              2.1.8  →    3.0.0
enzyme-adapter-react-16  ^1.11.2  →  ^1.12.1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-30 20:39:47

实际上,浅层渲染<ConnectedFaultReport>完全与Redux v6一起工作,这让我感到惊讶。我们有几个用户报告说,这完全停止了工作。。另外,如果您没有将存储作为支柱传递或包装在<Provider>中,那么现有的测试就会失败--连接的组件总是需要存储,句号。

从v7开始,您应该能够再次将商店直接作为道具传递(与v5和更早的版本一样),比如<ConnectedFaultReport store={store} />

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

https://stackoverflow.com/questions/55923342

复制
相关文章

相似问题

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