如何解决Jest React - 否则未采用路径
我正在尝试为此 React 组件添加测试覆盖率,并且当 if 语句之后没有 else 时,我在组件上收到此消息“未采用其他路径”。
下面是我的带有开玩笑警告的组件。有人可以帮忙介绍一下这部分吗?
function CustomerSatisfaction(props: FeedbackProps) {
const [status,setStatus] = useState<
'idle' | 'active' | 'pending' | 'success' | 'error'
>('idle');
const handleSubmit = useCallback(
async (smileyType: string,options: Record<string,string>) => {
setStatus('pending');
try {
const result = await fetchWithError(() => {
setStatus('error');
})('/pub/Feedback/Feedbacks','POST',{
surveyType: 'service',smileyType,comments: options.comment,ratings: {
clearness: options['customer_satisfaction.clear'],ease: options['customer_satisfaction.easy'],speed: options['customer_satisfaction.fast'],performance: options['customer_satisfaction.perf'],},pageUrl: window.location.href,serviceId: props.serviceId,productId: props.productId,});
**(else path not taken)** if (result.success) {
setStatus('success');
}
} catch (e) {
setStatus('error');
}
},[],);
return (
<CustomerSatisfactionComponent
i18n={props.i18n}
status={status}
onSubmit={handleSubmit}
/>
);
}
解决方法
伙计们,如果有人遇到这个问题,这是我的情况的解决方案
it('should render failure state',async () => {
const component = shallow(
<CustomerSatisfaction
i18n={() => ({})}
serviceId="123"
productId="123"
/>,);
(fetchWithError as jest.Mock).mockReturnValue(
jest.fn().mockResolvedValue({
success: false,}),);
const onSubmit: any =
component.find(CustomerSatisfactionComponent).prop('onSubmit') ||
(() => {});
await onSubmit('test',{});
expect(component).toMatchSnapshot();
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。