如何使用带有Jest的酶编写React组件中DataTable的单元测试?

时间:2018-10-08 10:17:10

标签: jquery reactjs datatables jestjs enzyme

我是React Unit测试的新手。我已经构建了一个React组件,该组件渲染了一个DataTable,并以column namesdata作为道具。我已经使用带有Jest的Enzyme(PASSED)对表格元素进行了单元测试。单元测试是

describe('Client Component Testing', () => {

    let mountedClientComp;
    const clientComp = () => {
        if (!mountedClientComp) {
            mountedClientComp = mount(
                <ClientsTable/>
            );
        }
        return mountedClientComp;
    };

    it('Client component renders a table', () => {
        const table = clientComp();
        table.setState({ temp: true });
        table.update();
        expect(table.exists('table')).toEqual(true);
    });
});

但是我没有得到如何编写DataTable搜索字段,分页按钮,表信息,表长度,排序元素的单元测试。

DataTable通过将table html标记放入DataTable对象中来操作DOM,并且由于table html标记是在React组件中编写的,因此需要对表元素PASSED进行单元测试。

但是对于测试DataTable Search输入字段,正在发现input元素,该元素未编写且将被动态附加,因此没有获得如何编写单元测试的信息!

如何为动态添加的元素编写单元测试?

关于[Shashidhar]

1 个答案:

答案 0 :(得分:0)

您可以在每个具有不同属性的测试用例中安装新的<ClientsTable>,并在各个测试用例中找到所需的内容。