ReactTestRenderer:lib在树中查找元素

时间:2016-08-26 23:01:11

标签: reactjs testing jestjs

我的测试代码有以下代码

import React from 'react';
import renderer from 'react/lib/ReactTestRenderer';

import Accordion from '../../src/js/components/Accordion';
import AccordionPanel from '../../src/js/components/AccordionPanel';

// needed because this:
// https://github.com/facebook/jest/issues/1353
jest.mock('react-dom');

describe('Accordion', () => {
  it('has correct default options', () => {
    const component = renderer.create(
      <Accordion>
        <AccordionPanel heading="First Title">
          <p>test</p>
        </AccordionPanel>
      </Accordion>
    );
    let tree = component.toJSON();
    expect(tree).toMatchSnapshot();
  });
});

现在我想在子项内的属性中调用onClick函数。我想知道是否有一个lib能够遍历component.toJSON()树并找到给定查询的元素。例如:

findAllByType(tree, 'header');

此调用的返回将是树内的一组头元素。

我可以创建一个递归函数来遍历树,但我想知道是否有一个lib为我做了。我试着环顾四周,但找不到任何东西。

其他可能的实用功能是:

  • findFirstByType(tree, type)
  • findAllByClassName(tree, className)
  • findFirstByClassName(tree, className)
  • findAllBy(tree, field, value)
  • findFirstBy(tree, field, value)

0 个答案:

没有答案