【发布时间】:2021-08-05 02:20:27
【问题描述】:
我正在尝试模拟 showAllElements 函数以查看我的 setElements 状态是否设置正确。这是反应 sn-p。
function functionalComponent(){
const [elements, setElements] = React.useState([{"isHidden": true}]);
function showAllElements() {
setElements((elements) =>
elements.map((element) => {
element.isHidden = false;
return element;
})
);
}
return (
<SideBar
showAllElements={showAllElements}
/>
}
这是我的笑话/酶 sn-p。但是,当我运行测试时,我得到的是 [Anonymous Function],而不是字段 isHidden 设置为 false 的元素数组。
it("Should set the field isHidden to false on all elements", async () => {
Sidebar.invoke("showAllElements")();
functionalComponent.update();
expect(setElements).toHaveBeenCalledWith([{"isHidden": false}]);
});
我正在使用 jest.fn() 模拟 setElements 这种方法适用于不使用箭头函数的 setState,例如这个。
it("Open Sidebar", async () => {
SideBar.invoke("setIsSideBarVisible")(true);
actionMapper.update();
expect(setIsSideBarVisible).toHaveBeenCalledWith(true);
});
【问题讨论】:
标签: javascript reactjs jestjs enzyme