Javascript 如何将react钩子与Jest和react测试库一起使用
我在测试使用react钩子的组件时遇到问题。 我需要测试点击一个按钮后,ant design range选择器中的日期范围是否正在更新。对于测试,我使用Jest和react测试库 此时看起来是这样的:(其中一些嵌套组件只是样式化组件:) Parent.jsx:Javascript 如何将react钩子与Jest和react测试库一起使用,javascript,reactjs,antd,react-hooks,react-testing-library,Javascript,Reactjs,Antd,React Hooks,React Testing Library,我在测试使用react钩子的组件时遇到问题。 我需要测试点击一个按钮后,ant design range选择器中的日期范围是否正在更新。对于测试,我使用Jest和react测试库 此时看起来是这样的:(其中一些嵌套组件只是样式化组件:) Parent.jsx: const Parent = () => { const [dateRange, setDateRange] = useState([moment(), moment()]); return ( <div&g
const Parent = () => {
const [dateRange, setDateRange] = useState([moment(), moment()]);
return (
<div>
<Sidebar
visible={sidebarVisible}
setSidebarVisible={setSidebarVisible}
setTableData={setTableData}
setStatementsLength={setStatementsLength}
setDateRange={setDateRange}
dateRange={dateRange}
/>
</div>
);
};
export default Parent;
但我得到的是:
钩子只能在函数组件的主体内部调用。
所以我猜我不能在那里使用它。有什么解决办法吗?
如何在测试中指定类似于钩子的setDateRange
函数
我发现:
但这看起来像是定制挂钩
也许这个测试用例有一个不使用react钩子的解决方案?任何想法都值得高度赞赏。:) 您必须呈现
Parent
,因为它包含更新DateSelect
的逻辑。这有助于更好的测试,因为您正在测试组件之间的集成是否有效。哦,这很有意义。但这应该是父测试的一部分还是DateSelect测试的一部分可能是父母。TBH我停止测试组件,我现在测试功能。这对我来说更有意义我是一个乞丐,我需要反应和测试,所以我可能需要一段时间来解决问题,但非常感谢你的帮助:)