首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试反应元件

测试反应元件
EN

Stack Overflow用户
提问于 2020-02-21 06:43:14
回答 1查看 45关注 0票数 0

我一直在抓我的头,试图找到一种方法来测试哪些道具被传递到我编写的反应组件中。见示例:

FirstName.js

代码语言:javascript
复制
export default FirstName = (props) => {
 return (
   <Select value={props.value} />
 );
}

Select.js

代码语言:javascript
复制
export default Select = (props) => {
 return (
   <div>props.value</div>
 );
}

我想要编写的测试是针对FirstName组件的,我希望确保值支柱被传递到值属性中。

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

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

代码语言:javascript
复制
jest.mock('../moduleName', () => {
  return {
    __esModule: true,
    default: jest.fn(),
  };
});

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

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-21 07:01:24

你能试试下一种方法吗?

代码语言:javascript
复制
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);
  });

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

https://stackoverflow.com/questions/60333380

复制
相关文章

相似问题

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