• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Mockowanie funkcji modułu używanej w tym samym module

Object Storage Arubacloud
0 głosów
108 wizyt
pytanie zadane 4 września 2018 w JavaScript przez szustka124 Gaduła (4,380 p.)

Mam moduł z funkcjami służącymi do komunikacji z api. Poszczególne funkcje wywołują jedną z funkcji w module. Jak zamockować tę funkcję do testowania pozostałych?

export const callApiRequest = () => true;

export const fetchItems = () => callApiRequest();

export const fetchConfig = () => callApiRequest();

Gdy tworzę mocka za pomocą jest.spyOn(), wyniki pokazują, że funkcja nie została wywołana.

Do testów używam Jest

1 odpowiedź

+1 głos
odpowiedź 4 września 2018 przez Comandeer Guru (602,340 p.)
wybrane 4 września 2018 przez szustka124
 
Najlepsza

Nie wiem, do jakiej to postaci jest transpilowane, ale strzelam, że po prostu jest tworzona zmienna callApiRequest wewnątrz tego modułu i wszystkie funkcje się po prostu do niej odwołują. Tym samym mockując eksport po prostu nadpisujesz referencję, nic więcej.

Inna rzecz, że gdyby nie było transpilacji, to to też by raczej nie działało, bo eksporty są domyślnie tylko do odczytu.

komentarz 4 września 2018 przez szustka124 Gaduła (4,380 p.)
Nie wiedziałem, że tak to działa. Masz może pomysł jak to przepisać, żeby dało się tworzyć mocki? Myślałem nad eksportowaniem obiektu z tymi funkcjami jako metody i wtedy odwoływać się przez this.
komentarz 4 września 2018 przez Comandeer Guru (602,340 p.)

Myślałem nad eksportowaniem obiektu z tymi funkcjami jako metody i wtedy odwoływać się przez this.

To będzie prawdopodobnie najprostsze rozwiązanie. 

komentarz 4 września 2018 przez szustka124 Gaduła (4,380 p.)
Dzięki za pomoc. Tak zrobiłem.

Podobne pytania

0 głosów
2 odpowiedzi 223 wizyt
pytanie zadane 5 czerwca 2021 w JavaScript przez poldeeek Mądrala (5,980 p.)
0 głosów
1 odpowiedź 360 wizyt
pytanie zadane 17 kwietnia 2020 w JavaScript przez michal_php Stary wyjadacz (13,700 p.)
+1 głos
1 odpowiedź 492 wizyt
pytanie zadane 16 lipca 2018 w Java przez Aisekai Nałogowiec (42,190 p.)

92,634 zapytań

141,505 odpowiedzi

319,883 komentarzy

62,015 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...