GraphQL.cz/Fórum/Jak mockovat GraphQL data ve Storybooku?

Jak mockovat GraphQL data ve Storybooku?

Přemýšlím, jak správně mockovat GraphQL data při práci se Storybookem. Mám komponenty, které potřebují nějaká API data, ale nechci je volat naostro během vývoje. Chtěl bych mít možnost simulovat různá scénáře a testovat, jak se komponenty chovají s různými odpověďmi z GraphQL serveru. Jaké jsou nejlepší praktiky pro mockování těchto dat? Měl by se použít nějaký konkrétní balíček nebo knihovna? Slyšel jsem něco o Apollo Client a jeho možnostech, ale nevím, jestli je to ideální cesta. Jak by se dal například nastavit fake server nebo nějaký stub? A co když potřebuji testovat více než jednu variantu odpovědi? Je lepší mockovat jednotlivé dotazy, nebo to udělat globálně pro celou aplikaci? Zajímalo by mě, jestli máte nějaké tipy na dokumentaci nebo příklady, které by mi pomohly lépe pochopit, jak to celé nastavit. Rád bych slyšel vaše zkušenosti a rady ohledně efektivního mockování GraphQL v rámci Storybooku.

144 slov
1.4 minut čtení
29. 7. 2022
Radek Eliáš

Pro mockování GraphQL dat ve Storybooku je super použít Apollo Client, protože má možnost mockovat odpovědi. Můžeš si vytvořit fake server pomocí Apollo's MockedProvider, což ti umožní simulovat různé odpovědi na dotazy bez skutečného API. Nastavíš si mock data pro jednotlivé dotazy a můžeš testovat víc scénářů.

Ideal je mockovat dotazy podle potřeby a ne globálně pro celou aplikaci, aby ses vyhnul nežádoucím efektům. Ale pokud máš hodně komponent a chceš mít jednotnost, tak globální mock může být taky OK. Je dobrý mít různé varianty odpovědí – třeba úspěšné, s chybou nebo prázdné data.

Dokumentace k Apollo Clientu je dost podrobná, takže tam najdeš příklady, jak to nastavit. Na GitHubu nebo v příkladech ke Storybooku se dá taky inspirovat. Hlavně si dej pozor na to, jak se tvoje komponenty chovají s různými daty a jestli správně reagují na chyby.

138 slov
1.4 minut čtení
13. 9. 2024
Eduard Rybář

Pokud chceš mockovat GraphQL data ve Storybooku, tak nejjednodušší je použít Apollo Client. Můžeš si nastavit Apollo MockedProvider, kde definuješ mockované odpovědi na dotazy. To ti umožní testovat víc scénářů, protože můžeš mít různé odpovědi pro různé dotazy.

Tady je pár tipů, jak na to:

  1. Vytvoř si mockované odpovědi a přidej je do story komponenty pomocí MockedProvider.
  2. Pokud chceš testovat víc variant, klidně udělej víc různých story s různými mocks pro každý možný scénář.
  3. Není potřeba mockovat celou aplikaci najednou, lepší je to dělat lokálně pro konkrétní komponenty, co potřebují specifické data.

Na dokumentaci k Apollo MockedProvider se podívej, tam je to dost vysvětlený a najdeš i příklady. Jo a klidně si můžeš pohrát s fake serverem třeba přes MSW (Mock Service Worker), to je taky fajn volba pro mockování API v jakékoli aplikaci, ale pro Storybook a Apollo je nejlepší ten MockedProvider.

147 slov
1.5 minut čtení
31. 8. 2024
Soňa Khýrová

Pokud chceš mockovat GraphQL data ve Storybooku, tak doporučuju použít Apollo Client s Apollo Mocked Provider. Je to super jednoduchý a dá ti možnost simulovat různé odpovědi na dotazy. Můžeš si vytvořit fake server nebo použít in-memory cache, což je skvělý na testování. Když mockuješ, tak ideálně mockuj jednotlivé dotazy přímo v příbězích, aby ses mohl zaměřit na konkrétní scénáře. Pokud potřebuješ víc variant odpovědí, tak to udělej pomocí různých mockovaných odpovědí a pak je podle potřeby měň v příbězích. Je fajn mít i dokumentaci k Apollo Clientu po ruce, protože tam najdeš příklady a návod jak to nastavit. Kdybys potřeboval detailnější info, tak se mrkni na oficiální Apollo docs nebo nějaké blogy, co se tomu věnujou. Bude to stát za to.

122 slov
1.2 minut čtení
11. 12. 2024
Roman Prchal
GraphQL.cz/Články/Storybook a React-GraphQL intergrated
Pokročilé techniky mockování dat v Storybooku pro GraphQL aplikaceObjevte, jak efektivně mockovat GraphQL API v Storybooku a zajistit reálné scénáře pro vývoj uživatelského rozhraní. Naučte se pokročilé techniky, kte...
1000 slov
10 minut čtení
18. 6. 2021
Barbora Němcová
Přečíst článek
Podobné otázky