如何测试包装在另一个连接组件中的连接组件?

路易斯·伊根

我想测试我的纯组件,所以我要这样做:

MyComp.js

export MyComp = props => {
  return (
    <Wrapper>Content</Wrapper>
  )
}

const MyCompConn = connect()(MyComp);
export default MyCompConn;

哪里<Wrapper>

export Wrapper = ({children}) => {
  return (
    <div>{children}</div>
  )
}

const WrapperConn = connect()(Wrapper);
export default WrapperConn;

MyComp.test.js

import React from 'react';
import renderer from 'react-test-renderer';

import { MyComp } from '../../MyComp';


describe('With Snapshot Testing', () => {
  it('renders!"', () => {
    const component = renderer.create(<Login />);
    const tree = component.toJSON();
    expect(tree).toMatchSnapshot();
  });
});

现在,当我运行时出现yarn test此错误:

Invariant Violation: Could not find "store" in either the context or props of "Connect(AppWrapper)". Either wrap the root component in a <Provider> or explicitly pass "store" as a prop to "Connect(AppWrapper)"

而这种情况正在发生,因为<Wrapper>连接在我的<MyComp>组成部分,但我不知道如何测试只是如果它包裹着一个连接的组件后者甚至。

阿努拉达·库马里(Anuradha kumari)

要在不使用模拟存储的情况下测试组件,我们可以使用Jest模拟react-redux本身的连接。PFB的例子:


import React from 'react';
import renderer from 'react-test-renderer';

import { MyComp } from '../../MyComp';

jest.mock('react-redux', () => ({
  connect: () => {
    return (component) => {
      return component
    };
  }
}));

describe('With Snapshot Testing', () => {
  it('renders!"', () => {
    const component = renderer.create(<Login />);
    const tree = component.toJSON();
    expect(tree).toMatchSnapshot();
  });
});

现在,这将Wrapper直接渲染组件,而不是connected Wrapper组件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

存储从另一个连接的组件更改后,连接的组件不会重新呈现

如何在 Blazor 中重用标记包装器,而不创建另一个组件

在包装另一个指令的可重用组件Angular指令中,如何使模型“通过”?

如何将按钮事件连接到另一个React组件?

如何在另一个方法中测试 Vue 组件方法调用

如何测试组件中另一个模块的自定义指令

在ReactJS中,如何在另一个组件中渲染一个组件?

在反应中如何调用另一个组件中的一个组件?

如何从功能组件中的另一个组件中的组件获取id

React.js:将一个组件包装到另一个组件中

React Redux,我的组件未连接到Redux Store。我在另一个组件中测试了动作和减速器,它对其他组件起作用吗?

如何在React中让一个组件“位于另一个组件之下”?

如何从vue.js中的另一个组件更新一个组件

如何在React中从另一个组件设置一个组件的状态

如何在离子中的另一个组件中使用一个组件?

如何在 React 中从另一个组件重新渲染一个组件?

如何测试React组件是否包含Tape和Enzyme的另一个组件?

SoapUI:如何传递令牌变量并将其连接到另一个测试中?

如何在 RxJava 中将 observable 包装在另一个 observable 中?

另一个组件如何从react / redux中的另一个组件动作中监听?

另一个组件中的组件

角4:如何从另一个组件更新另一个组件中的数组的值

如何从 Angular8 中的另一个组件传递一个组件的值(独立组件)

如何测试一个组件以另一个组件作为参数调用函数道具?

如何从另一个组件调用函数到另一个组件

测试组件方法调用另一个方法

如何在React中的另一个组件中添加组件?

如何在angular 7中动态传递另一个组件中的组件

如果按下另一个组件中的链接,如何更新组件中的列表?