我有一个测试,它像这样调用renderHook
:
const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
这一切都很好并且可以正常工作,我可以在result.current
中获得返回值。
似乎我无法使用renderHook
来调用另一个钩子。如果执行完全相同的操作,则表明result
已经定义。如果我将名称更改为其他名称,例如“ res”,则表示res未定义,就像它仅适用于特定名称“ result”一样。
那我怎么能不止一次打电话呢?
答案 0 :(得分:0)
由于每个测试只应测试一个钩子,因此也许您必须首先卸载当前组件:
const { result, unmount } = renderHook(() => useMyHook(useDispatch()), wrapper);
// ... do what you need with result
unmount();
// call your new hook...
const { result } = renderHook(() => useNewHook(useDispatch()), wrapper);
答案 1 :(得分:0)
我可能要离开了,但看来您正在拨打这样的电话:
const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
在这种情况下,您尝试重新定义变量result
您可以这样调整范围:
{
// 1st time
const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
// validate result of creating 1st hook in here
}
{
// 2nd time
const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
// validate result of creating 2nd hook in here
}