У меня есть следующий компонент. По сути, тег изображения HTML с крюком useState
, который устанавливает резервное изображение при onError. (Когда изображение не существует локально):
import React, { useState } from 'react';
export interface LensesImageProps {
srcImage: string;
classNames?: string;
fallbackImage?: FallbackImages;
}
export enum FallbackImages {
GENERAL_FALLBACK = 'src/assets/icons/general.svg',
SPECIFIC_FALLBACK = 'src/assets//specific.svg'
}
const Image = ({
srcImage,
fallbackImage = FallbackImages .GENERAL_FALLBACK,
classNames
}: ImageProps) => {
const imgToSourceFrom = `srcImage`;
const imgToFallbackTo = `fallbackImage`;
const [imgUrl, setImgUrl] = useState<string>(imgToSourceFrom);
return (
<img
src={imgUrl}
className={classNames}
onError={() => setImgUrl(imgToFallbackTo)}
/>
);
};
export default Image;
Я довольно подробно протестировал Happy Path. Нет, я пытаюсь проверить Несчастный Путь. Это означает, что я должен вызвать функцию onError
, чтобы установить состояние.
Я попытался смоделировать его с fireEvent
и createEvent
и отладить его, событие Fires, но не Кажется, я не могу изменить состояние так, как должно .. На самом деле меня смущает ..
Я хочу сделать это с react-testing-library
, по причинам обучения, но также и потому, что это компонент функции, и Enzyme не может читать состояние из компонентов функции. Кто-нибудь знаком с react-testing-library
или hooks-testing-library
, чтобы помочь мне здесь? Спасибо !!