使用Jest&Enzyme进行测试时设置URL参数

抗冰强度

我的组件有:

 class Search extends Component {
  constructor(props) {
    super(props);
    this.state = {
      searchTerm:
        typeof this.props.match.params.searchTerm !== "undefined"
          ? this.props.match.params.searchTerm
          : ""
    };
  }

测试是:

 test("Search should render correct amount of shows", () => {
  const component = shallow(<Search shows={preload.shows} />);
  expect(component.find(ShowCard).length).toEqual(preload.shows.length);
});

我懂了

TypeError:无法读取未定义的属性“ params”

如何解决该问题或如何在测试中设置查询参数?

罗德比

似乎在测试之外时,Search组件会match正确接收道具。
在测试中进行浅层渲染时,可以将其作为道具传递:

test("Search should render correct amount of shows", () => {
 const match = { params: { searchTerm: 'foo' } }
 const component = shallow(<Search shows={preload.shows} match={match}/>);
 expect(component.find(ShowCard).length).toEqual(preload.shows.length);
});

在那种情况下,您并没有以不好的方式更改被测组件,您的测试用例只是发现了一个错误,这很好,应该针对测试,并且您通过实现默认的道具来改进了该组件,更强大。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用React Context API进行Jest&Enzyme测试错误

如何使用Jest&Enzyme测试儿童文本组件

如何使用Jest&Enzyme在React中编写useEffect Hook的测试用例?

使用 Jest/Enzyme 进行 FlatList 测试

使用 Jest 进行测试时如何正确设置本地货币?

使用 jest Enzyme React 进行测试时无法获得道具

在使用React Navigation和TypeScript时,如何使用Jest和Enzyme对静态navigationOptions进行单元测试?

模拟点击时使用React的Jest和Enzyme进行测试会调用一个调用promise的函数

event.persist不是函数-JEST&Enzyme

使用 Jest / Enzyme 测试异步函数

使用 jest Enzyme 测试输入组件

设置数据库-使用Jasmine / Jest进行集成测试

在提交时进行Jest测试

异步组件时使用React的Jest和酶进行测试

使用 Jest 进行测试时如何更改常量值

使用 jest 和 superagent 进行测试时如何模拟函数

使用 jest 进行 Redux 测试

使用TypeScript,Jest和Enzyme在React中进行单元测试:无法调用可能是“未定义”的对象

如何使用Jest和Enzyme对包含history.push的react事件处理程序进行单元测试?

尝试使用mount进行测试时,React Enzyme setState不起作用

如何使用Jest + Enzyme测试React组件的样式?

如何使用Jest / Enzyme测试去抖功能?

使用Jest / Enzyme延迟后意外测试React组件的行为

使用Enzyme Jest测试React组件以查找HTML元素

开始使用Enzyme和Jest测试React组件

如何使用Jest和Enzyme测试按钮的onClick道具

如何使用Jest和Enzyme测试组件的条件渲染

如何使用Jest和Enzyme测试React中的功能

使用Jest / Enzyme测试componentDidMount中的多个提取