javascript - Jest 匹配器匹配三个值中的任何一个

标签 javascript reactjs jestjs

我的组件中有这个选择器,它的默认状态是 ''(空) 字符串,但是当 change 事件被触发时,用户可以选择三个值中的任何一个是 6、12 还是 24

it("feedform testing the selector feed frequency for value of 6, 12, 24 ", () => {
  const addFeedForm = shallow(
    <FeedForm
      submitForm={() => {}}
      setFeedData={() => {}}
      formType="add"
      feedsubmit={{
        status: null,
        error: {
          formsubmitwarning: "",
          feedname: "",
          feedurl: "",
          feedposttype: "",
          feedfrequency: "",
          feedpost: "",
          feedhashtag: "",
          formloginid: ""
        }
      }}
    />
  );
  expect(addFeedForm.state().feedfrequency).toEqual("");
  addFeedForm.simulate("change");
  expect(addFeedForm.state().feedfrequency).toEqual(6 || 12 || 24);
});

现在,在为此编写单元测试用例时,我快速浏览了 Jest 文档,为这三个值中的任何一个找到匹配器,但没有找到匹配器。

我什至尝试过使用 || (or) toEqualtoBe 匹配器中的运算符,但如您所料,它不起作用。有没有办法让它发挥作用,还是我应该一起跳过测试?

注意:我在 Jest 中使用 Enzyme

最佳答案

为了得到期望值中的一个,可以反向比较,用toContain测试一下方法如

expect(addFeedForm.state().feedfrequency).toEqual('');
addFeedForm.simulate('change');
expect([6, 12, 24]).toContain(addFeedForm.state().feedfrequency) 

关于javascript - Jest 匹配器匹配三个值中的任何一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51519041/

相关文章:

javascript - 在 Jest 单元测试中访问 React 组件中的 mobx 可观察属性

javascript - 如何使用 Javascript 判断 "navbar-toggle"按钮是否折叠或隐藏

javascript - 将第三方库添加到 Chrome 扩展时遇到问题

reactjs - 如何修复 Reactjs 中的 ‘Cannot read property ' params' of undefined' 错误

javascript - 如何将 PWA 与 Next.js 集成以允许通知和推送通知

javascript - ( react )用参数去抖动

javascript - 使用 angularAMD 时 ng-table 未正确加载

javascript - 我需要为正在使用的 Accordion 更改颜色

javascript - 用 Jest 开始文件下载的测试功能

reactjs - Jest mock 传奇延迟