【发布时间】:2020-07-10 15:28:48
【问题描述】:
假设我有这个简单的 React (TypeScript) 组件:
function Header(): JSX.Element {
const initialItemIndex = useInitialItemIndex();
const [currentItem, setCurrentItem] = useState(initialItemIndex);
function onChangeFunc(event: Event, itemNum: number): void {
setCurrentItem(itemNum);
}
return (
<div>
<Tabs value={currentTab} onChange={onChangeFunc}>
<Tab label="A" />
<Tab label="B" />
</Tabs>
</div>
);
}
我想测试(Jest,TypeScript)Tabs.onChange 正在调用onChangeFunc。我应该如何测试它?比如:
const wrapper = shallow(<Header />);
const spyFunc = jest.spyOn(Header, 'onChangeFunc');
wrapper.find('Tabs').simulate('change');
expect(spyFunc).toBeCalled();
我收到错误,关于 spyOn 中的第二个参数:
TS2345: Argument of type '"onChangeFunc"' is not assignable to parameter of type 'never'.
我做错了什么?
【问题讨论】:
-
1.因为它不是
Header函数的属性,所以它只定义在函数内部。 2. 它也是你正在测试的东西的一部分,所以你不应该监视它。
标签: reactjs typescript jestjs react-component spyon