使用 Jest 和 Enzyme 对模拟数据进行反应组件测试

时间:2021-06-28 18:44:37

标签: reactjs unit-testing jestjs enzyme

我有以下组件,需要使用 JestEnzyme

编写测试用例

Profile.js:

//rest of the code

authenticationService.currentUser.subscribe(user => currentUser = user);
    return (
            <Card className="authentication">
                <img src="https://www.shareicon.net/data/128x128/2016/07/26/802043_man_512x512.png" class="rounded mx-auto d-block img-circle" alt="..." />
                <br />
                <h4>{currentUser._doc.name}</h4>
                <h6>{currentUser._doc.role}</h6>
                <hr />
                <p>Contact Details</p>
                <p>E-mail: <a href={"mailto:"+ currentUser._doc.email}>{currentUser._doc.email}</a></p>
            </Card>
    );

我尝试了以下测试用例,但失败并出现此错误,因为我在 JSX 中使用了动态数据。 TypeError: Cannot read property '_doc' of null

it("renders without crashing", () => {
    shallow(<Profile />);
});

为了克服这个问题,我创建了一个像这样的虚拟 currentUser 对象,我的想法是在测试用例执行期间以某种方式传递它。 我不能使用道具,因为这个组件不接受任何道具。这可能吗?

const currentUser = {
    _doc: {
        _id: "60da098fe926fb878f975747",
        name: "Rukshan Jayasekara",
        role: "Attendee",
        email: "xyz@abc.com"
    }
}

任何帮助将不胜感激。

0 个答案:

没有答案