0Pricing
TypeScript Academy · Pelajaran

Mocking Modul dan Fungsi dalam TypeScript

Gunakan jest.mock dengan strategi konversi tipe yang tepat.

Mocking Modul dan Fungsi dalam TypeScript adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar TypeScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus TypeScript Academy mencakup 4 pelajaran total.

Selamat Datang

Pembuatan tiruan modul Jest dengan TypeScript memerlukan strategi konversi tipe yang tepat agar terhindar dari tiruan bertipe any.

jest.fn() dengan Tipe

Berikan tipe pada fungsi tiruan jest berdasarkan tanda tangannya.
const mockFn = jest.fn<number, [string]>();
mockFn('hello'); // typed call

jest.mock() dan TypeScript

jest.mock secara bawaan tidak memiliki tipe. Konversikan ke jest.MockedFunction untuk akses bertipe.
jest.mock('./api');
import { fetchUser } from './api';
const mockFetch = fetchUser as jest.MockedFunction<typeof fetchUser>;

Pembantu jest.mocked()

Jest 27+ menyediakan jest.mocked() untuk memberikan tipe pada modul tiruan dengan rapi.
jest.mock('./api');
import { fetchUser } from './api';
const mockFetch = jest.mocked(fetchUser);
mockFetch.mockResolvedValue({ id: 1, name: 'Alice' });

Membuat Tiruan Nilai Kembalian

Berikan tipe yang benar pada mockReturnValue dan mockResolvedValue.
mockFetch.mockResolvedValue({ id: 1, name: 'Alice' }); // must match User type

Memata-matai Metode

Gunakan jest.spyOn untuk memata-matai metode dengan tipe yang benar.
const spy = jest.spyOn(userService, 'findUser');
spy.mockResolvedValue(mockUser);

Membuat Tiruan Seluruh Modul

Buat tiruan seluruh modul dengan fungsi pembuat manual.
jest.mock('./db', () => ({
  findUser: jest.fn(),
  createUser: jest.fn(),
}));

Pembuatan Tiruan Otomatis

jest.createMockFromModule membuat tiruan dari modul yang sudah ada.
const mockDb = jest.createMockFromModule<typeof import('./db')>('./db');

Tiruan Parsial

Buat tiruan hanya untuk beberapa metode dalam sebuah modul.
jest.mock('./email', () => ({ ...jest.requireActual('./email'), sendEmail: jest.fn() }));

Mereset Tiruan

Atur ulang tiruan di antara pengujian untuk mencegah kebocoran keadaan.
afterEach(() => { jest.clearAllMocks(); });
// Or globally: jest.config clearMocks: true

Objek Tiruan yang Aman terhadap Tipe

Buat objek tiruan bertipe untuk pengujian injeksi dependensi.
const mockRepo: jest.Mocked<UserRepository> = {
  findById: jest.fn(),
  save: jest.fn(),
  delete: jest.fn(),
};

Pemeriksaan Singkat

Apa yang dilakukan `jest.mocked(fn)` dalam TypeScript?

Ringkasan

Membuat Tiruan Modul dan Fungsi dalam TypeScript: konsep dan pola utama telah dikuasai.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mocking Modul dan Fungsi dalam TypeScript” gratis?

Ya — teks lengkap “Mocking Modul dan Fungsi dalam TypeScript” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus TypeScript Academy, upgrade ke CoddyKit PRO. Kursus TypeScript Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mocking Modul dan Fungsi dalam TypeScript”?

Gunakan jest.mock dengan strategi konversi tipe yang tepat. Kamu berlatih TypeScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai TypeScript Academy?

Tidak diperlukan pengalaman sebelumnya. TypeScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Mocking Modul dan Fungsi dalam TypeScript” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Menyiapkan Jest untuk TypeScript dengan ts-jest
  2. Menulis Unit Test yang Aman Secara Tipe
  3. Mocking Modul dan Fungsi dalam TypeScript
  4. Pengujian Tipe dengan expectTypeOf dan tsd
← Kembali ke TypeScript Academy