繁体   English   中英

测试 React 组件

[英]Testing React components

我一直在努力寻找一种方法来测试哪些 props 被传递到我编写的 React 组件中。 见示例:

名字.js

export default FirstName = (props) => {
 return (
   <Select value={props.value} />
 );
}

选择.js

export default Select = (props) => {
 return (
   <div>props.value</div>
 );
}

我要编写的测试是针对 FirstName 组件的,我要确保将 value prop 传递到 Select Components value 属性中。

然而,目前我可以验证这一点的唯一方法是在 Select.js 的输出上断言,这不是我正在测试的单元的一部分,所以我真的不想让 FirstName.test.js 文件依赖于发生在 Select.js 内部。

我听说过的一种解决方案是使用jest.mock('path/to/Select.js')

jest.mock('../moduleName', () => {
  return {
    __esModule: true,
    default: jest.fn(),
  };
});

然而出于某种原因,我的测试中的 Select 是模拟函数,但 FirstName.js 中的 Select 不是,因此出于某种原因,它为测试存根,而不是为运行代码存根。

有任何想法吗?

你可以试试下一个方法吗

import FirstName from '../src/FirstName';
describe('<FirstName />', () => {
  const mockProps = { name: 'name', };
  it('Check Select props', () => {
    const wrapper = shallow(<FirstName {...mockProps} />);
    expect(wrapper.find('Select').props()).toBe(mockProps);
  });

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM