酶装载API问题:TypeError:无法读取属性' find'未定义的

时间:2017-10-06 17:53:58

标签: javascript reactjs typescript enzyme

我正在尝试测试我的组件,但我不断收到此错误: TypeError:无法读取属性' find'未定义的

在将组件转换为无状态组件之前,我的测试工作正常。根据我的理解,您也可以测试功能无状态组件。我不知道我在这里做错了什么。

我的测试文件

~

我的组件

import * as React from 'react';
import { LeftNavigation } from "../src/components/LeftNavigation";
import { mount } from 'enzyme';

describe("<LeftNavigation />", () => {
    const wrapper;

    beforeEach(() => {
        wrapper = mount(
            <LeftNavigation title="Protocol Vantage Points" path="/hello"/>
        );
    });

    it("renders the title", () => {
        expect(wrapper.find(".uk-h3 span").text()).toBe("Protocol Vantage Points");
    });

    it("renders first menu item 'On demand tests'", () => {
        expect(wrapper.find("#synth-left-nav .uk-nav li a").at(0).text()).toBe("On demand tests");
    });

    it("renders second menu item 'Feel status'", () => {
        expect(wrapper.find("#synth-left-nav .uk-nav li a").at(1).text()).toBe("Fleet status");
    });
});

1 个答案:

答案 0 :(得分:1)

我弄明白了这个问题。测试呈现import * as Name from 'module'; import { A, B } from 'module'; <Link>的组件可能会导致错误和有关上下文的警告。建议您将测试包装在<Route><StaticRouter>中。请查看此参考:https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/testing.md

这是我的解决方案:

<MemoryRouter>