Ей там! Като доставчик на куки, аз съм в играта от доста време и знам колко е важно да тествате правилно куките. Един от ключовите аспекти на тестването на куките е да ги подигравате ефективно. Така че, нека се потопим в това, което според мен е най -добрият начин да се подигравате с куки в тестовете.
Защо да се подигравате с куки в тестовете?
Първо, защо дори трябва да се подиграваме на куки? Е, куките често взаимодействат с външни ресурси като API, бази данни или изградените от браузъра - във функции. Когато пишем тестове на единици, искаме да изолираме компонента или функцията, която тестваме. Mocking Hooks ни позволява да контролираме входа и изхода на тези куки, което прави нашите тестове по -надеждни и по -бързи.
Например, ако използвате персонализирана кука, която извлича данни от API, не искате да разчитате на действителния API, който е на разположение и връщайки последователни данни по време на теста. Вместо това можете да се подигравате с куката, за да върнете предварително определен набор от данни.
Различни начини за подигравка на куки
1. Ръчно подигравки
Един от най -ясните начини за подигравка на куки е да го направите ръчно. Да речем, че имате наречена персонализирана кукаusefetchDataТова извлича някои данни от API.
// usefetchData.js import {useeffect, USESTATE} от 'React'; const usefetchData = () => {const [data, setData] = useState (null); const [зареждане, зареждане] = USESTATE (вярно); useEffect(() => { const fetchData = async () => { try { const response = await fetch('https://example.com/api/data'); const result = await response.json(); setData(result); setLoading(false); } catch (error) { console.error('Error fetching data:', error); } }; връщане {данни, зареждане}; }; Експортиране по подразбиране usefetchData;
За да се подигравате ръчно на тази кука в тест, можете да създадете макетна реализация.
// __mocks __/usefetchData.js const usefetchData = () => {return {data: {message: 'mocked data'}, зареждане: false}; }; Експортиране по подразбиране usefetchData;
В тестовия си файл можете да използвате този макет.
импортиране реагира от 'React'; import {render, екран} от '@testing-library/react'; импортиране на компонент. jest.mock ('./ usefetchData'); опис ('componentThatusesesfetchData', () => {it ('трябва да показва макетни данни', () => {render (<componentthatusesesfetchdata />); const dataelement = screen.getByText ('макетни данни'); очаквайте (dataelement) .tobeinthedocument ();});});
Ръчното подигравки ви дава пълен контрол върху макетното изпълнение. Можете да промените стойностите на връщане въз основа на различни тестови сценарии. Въпреки това, може да мине малко време - особено, особено ако имате много куки, които да се подигравате.
2. Използване на автоматичното подигравки на Jest
Jest има функция, при която той може автоматично да създава подигравки за вас. Ако имате кука във файл, Jest може да създаде макетна версия на тази кука с някакво поведение по подразбиране.
Например, ако имате обикновена кука катоusecounter:
// usecounter.js import {useState} от 'React'; const usecounter = () => {const [count, setCount] = USESTATE (0); const increment = () => setCount (брой + 1); return {count, increment}; }; Експортиране по подразбиране usecounter;
В теста си можете да използвате автоматичното подигравки на Jest.
импортиране реагира от 'React'; import {render, екран} от '@testing-library/react'; импортиране на компонент от това, че './ComponentThatUsescounter'; jest.mock ('./ usecounter'); опишете ('ComponentThatUseScounter', () => {it ('трябва да използва макетирания брояч', () => {render (<componentthatusescounter />); // Можете допълнително да персонализирате макета тук, ако е необходимо // например, ако компонентът извиква прираст, можете да проверите макетното поведение});});
Предимството на използването на автоматично подигравки на Jest е, че той е бърз и лесен за настройка. Но може да не е толкова гъвкав, колкото ръчно подигравателното, особено когато се нуждаете от много конкретно макетно поведение.
3. Използване на библиотека за тестване на реагиране и библиотека за тестване на куки за реагиране
Библиотеката за тестване на React Hooks е чудесен инструмент за тестване на куки. Той осигурява комунални услуги за изобразяване на куки и тестване на тяхното поведение.
Да речем, че имате кука, която изчислява сумата от две числа:
// usesum.js import {Usestate} от 'React'; const usipum = (a, b) => {const [sum, setSum] = useState (a + b); сума за връщане; }; Експортиране по подразбиране UsedUm;
Можете да използвате библиотеката за тестване на React Hooks, за да тествате тази кука и също така да се подигравате с всички зависимости, ако е необходимо.
import {renderhook} от '@testing-library/react-куки'; import usistum от './usesum'; опис ('usizum', () => {it ('трябва да изчисли сумата правилно', () => {const {result} = renderhook (() => usizum (2, 3)); очаквайте (резултат.current) .Tobe (5);});});
Ако вашата кука има някои външни зависимости, можете да използвате същите принципи на ръчно или шега, за да се справите с тях.
Най -добри практики за подигравки на куки
- Дръжте макетите просто: Вашите макети трябва да са възможно най -прости. Те трябва само да имитират поведението, от което се нуждае вашият тест. Над - усложняването на макетите може да направи вашите тестове трудни за разбиране и поддържане.
- Тествайте различни сценарии: Уверете се, че тествате различни сценарии, като промените макетните данни. Например, ако вашата кука има различни състояния като зареждане, успех и грешка, тествайте всички тези състояния, като върнете различни макетни стойности.
- Отделни притеснения: Дръжте макетите си отделно от производствения си код. Това улеснява управлението и актуализирането им с развитието на кодовата ви база.
Истински - световни приложения в нашия бизнес на куки
Като доставчик на куки имаме различни видове куки, катоКуки за индустриална силакоито се използват в тежки приложения. Когато разработваме софтуер за управление на нашия инвентар, проследяване на поръчки или показване на информация за продукта, използваме куки в нашите приложения за реакция.
Тестването на тези куки е от решаващо значение, за да се гарантира, че софтуерът ни работи правилно. Например, ако имаме кука, която извлича нивото на запасите на нашите куки за индустриална сила от база данни, можем да се подиграем на тази кука в нашите тестове, за да избегнем разчитането на действителната база данни.
Имаме и продукти катоДебели ремъци на тресч за тежко оборудванеи1 инчова пластмасова катарама. Нашият софтуер може да използва куки за изчисляване на разходите за доставка, показване на данни за продукта или управление на поръчките на клиентите. Подиграването на тези куки ни помага да пишем надеждни и бързи тестове.
Заключение и призив за действие
Подигравателните куки е съществена част от тестването на реагиращи приложения. Използвайки правилните техники като ръчно подигравки, автоматичното подигравки на Jest или React Hooks Тестване на библиотеката, можете да гарантирате, че вашите куки работят както се очаква.
Ако сте на пазара за висококачествени куки, независимо дали става въпрос за куки за индустриална сила, гъсти каишки за тресчотка за тежко оборудване или 1 инчова пластмасова катарама, ние сме тук, за да ви служим. Ние предлагаме широка гама от продукти, които са изградени да продължат. Ако се интересувате от закупуване на нашите продукти, не се колебайте да се свържете с нас за дискусия за обществени поръчки. Щастливи сме да отговорим на всички въпроси, които може да имате и да ви помогнем да намерите подходящите продукти за вашите нужди.


ЛИТЕРАТУРА
- Реагирайте официалната документация
- Страта официална документация
- Официална документация за тестване на реагиране
- Официална документация за тестване на React Hooks