我有以下组件,需要使用 Jest 和 Enzyme
编写测试用例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"
}
}
任何帮助将不胜感激。