0Pricing
TypeScript Academy · Lezione

Mock di moduli e funzioni in TypeScript

Utilizzi jest.mock con strategie corrette di conversione dei tipi.

Mock di moduli e funzioni in TypeScript è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento TypeScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso TypeScript Academy include 4 lezioni in totale.

Benvenuto

Il mocking dei moduli Jest con TypeScript richiede strategie corrette di conversione dei tipi per evitare mock tipizzati come any.

jest.fn() con i tipi

Tipizzi una funzione mock di Jest con la relativa firma.
const mockFn = jest.fn<number, [string]>();
mockFn('hello'); // typed call

jest.mock() e TypeScript

jest.mock non è tipizzato per impostazione predefinita. Esegua il cast a jest.MockedFunction per accedere ai tipi.
jest.mock('./api');
import { fetchUser } from './api';
const mockFetch = fetchUser as jest.MockedFunction<typeof fetchUser>;

Helper jest.mocked()

Jest 27 e versioni successive fornisce jest.mocked() per tipizzare in modo chiaro i moduli sottoposti a mocking.
jest.mock('./api');
import { fetchUser } from './api';
const mockFetch = jest.mocked(fetchUser);
mockFetch.mockResolvedValue({ id: 1, name: 'Alice' });

Mocking dei valori restituiti

Tipizzi correttamente mockReturnValue e mockResolvedValue.
mockFetch.mockResolvedValue({ id: 1, name: 'Alice' }); // must match User type

Spiare i metodi

Utilizzi jest.spyOn per eseguire lo spying tipizzato dei metodi.
const spy = jest.spyOn(userService, 'findUser');
spy.mockResolvedValue(mockUser);

Mocking di interi moduli

Esegua il mocking di un intero modulo con funzioni factory manuali.
jest.mock('./db', () => ({
  findUser: jest.fn(),
  createUser: jest.fn(),
}));

Mocking automatico

jest.createMockFromModule crea un mock a partire da un modulo esistente.
const mockDb = jest.createMockFromModule<typeof import('./db')>('./db');

Mock parziali

Esegua il mocking solo di alcuni metodi di un modulo.
jest.mock('./email', () => ({ ...jest.requireActual('./email'), sendEmail: jest.fn() }));

Cancellazione dei mock

Reimposti i mock tra un test e l'altro per impedire la fuoriuscita dello stato.
afterEach(() => { jest.clearAllMocks(); });
// Or globally: jest.config clearMocks: true

Oggetti mock type-safe

Crei oggetti mock tipizzati per i test dell'iniezione delle dipendenze.
const mockRepo: jest.Mocked<UserRepository> = {
  findById: jest.fn(),
  save: jest.fn(),
  delete: jest.fn(),
};

Verifica rapida

Che cosa fa `jest.mocked(fn)` in TypeScript?

Riepilogo

Mocking di moduli e funzioni in TypeScript: ha acquisito i concetti e i pattern fondamentali.

Domande Frequenti

La lezione «Mock di moduli e funzioni in TypeScript» è gratuita?

Sì — il testo completo di «Mock di moduli e funzioni in TypeScript» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso TypeScript Academy, passa a CoddyKit PRO. Il corso TypeScript Academy include 4 lezioni in totale.

Cosa imparerò in «Mock di moduli e funzioni in TypeScript»?

Utilizzi jest.mock con strategie corrette di conversione dei tipi. Eserciti TypeScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare TypeScript Academy?

Non è richiesta alcuna esperienza precedente. TypeScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Mock di moduli e funzioni in TypeScript»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione TypeScript Academy?

Sì. Ogni lezione TypeScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Configurazione di Jest per TypeScript con ts-jest
  2. Scrittura di unit test type-safe
  3. Mock di moduli e funzioni in TypeScript
  4. Test dei tipi con expectTypeOf e tsd
← Torna a TypeScript Academy