TESTING DOCS
UNIT-TESTING
Name
Description
Example
Output
Jest - test() / it()Description: Mendefinisikan sebuah unit test.
Example:
test('menjumlahkan 1 + 2 sama dengan 3', () => {
expect(1 + 2).toBe(3)
})Output: ✓ menjumlahkan 1 + 2 sama dengan 3
Jest - test() / it()Mendefinisikan sebuah unit test.
test('menjumlahkan 1 + 2 sama dengan 3', () => {
expect(1 + 2).toBe(3)
})✓ menjumlahkan 1 + 2 sama dengan 3
Vitest - test() / it()Description: Unit test dengan Vitest (API kompatibel Jest).
Example:
import { test, expect } from 'vitest'
test('perkalian 2 * 3 = 6', () => {
expect(2 * 3).toBe(6)
})Output: ✓ perkalian 2 * 3 = 6
Vitest - test() / it()Unit test dengan Vitest (API kompatibel Jest).
import { test, expect } from 'vitest'
test('perkalian 2 * 3 = 6', () => {
expect(2 * 3).toBe(6)
})✓ perkalian 2 * 3 = 6
describe() blockDescription: Mengelompokkan beberapa test.
Example:
describe('Math operations', () => {
test('add', () => { ... })
test('subtract', () => { ... })
})Output: Math operations > add ✓, subtract ✓
describe() blockMengelompokkan beberapa test.
describe('Math operations', () => {
test('add', () => { ... })
test('subtract', () => { ... })
})Math operations > add ✓, subtract ✓
MATCHERS
Name
Description
Example
Output
toBe()Description: Membandingkan nilai primitive secara strict (===).
Example:
expect(2 + 2).toBe(4)
Output: Pass jika hasil 4
toBe()Membandingkan nilai primitive secara strict (===).
expect(2 + 2).toBe(4)
Pass jika hasil 4
toEqual()Description: Deep equality untuk objek/array.
Example:
expect({ a: 1 }).toEqual({ a: 1 })Output: Pass jika struktur sama
toEqual()Deep equality untuk objek/array.
expect({ a: 1 }).toEqual({ a: 1 })Pass jika struktur sama
toBeTruthy / toBeFalsyDescription: Memeriksa apakah nilai truthy atau falsy.
Example:
expect(true).toBeTruthy() expect(0).toBeFalsy()
Output: Pass sesuai kondisi
toBeTruthy / toBeFalsyMemeriksa apakah nilai truthy atau falsy.
expect(true).toBeTruthy() expect(0).toBeFalsy()
Pass sesuai kondisi
toContain()Description: Memeriksa apakah array/string mengandung nilai.
Example:
expect(['apel', 'jeruk']).toContain('apel')Output: Pass
toContain()Memeriksa apakah array/string mengandung nilai.
expect(['apel', 'jeruk']).toContain('apel')Pass
toHaveLength()Description: Memeriksa panjang array/string.
Example:
expect('hello').toHaveLength(5)Output: Pass
toHaveLength()Memeriksa panjang array/string.
expect('hello').toHaveLength(5)Pass
toThrow()Description: Memastikan fungsi melempar error.
Example:
expect(() => { throw new Error('fail') }).toThrow('fail')Output: Pass
toThrow()Memastikan fungsi melempar error.
expect(() => { throw new Error('fail') }).toThrow('fail')Pass
toMatchSnapshot()Description: Membandingkan dengan snapshot yang tersimpan.
Example:
expect(component).toMatchSnapshot()
Output: Snapshot cocok atau baru dibuat
toMatchSnapshot()Membandingkan dengan snapshot yang tersimpan.
expect(component).toMatchSnapshot()
Snapshot cocok atau baru dibuat
REACT-COMPONENT-TESTING
Name
Description
Example
Output
render()Description: Merender komponen React untuk testing (React Testing Library).
Example:
import { render } from '@testing-library/react'
render(<Button label="Click" />)Output: Komponen terender di JSDOM
render()Merender komponen React untuk testing (React Testing Library).
import { render } from '@testing-library/react'
render(<Button label="Click" />)Komponen terender di JSDOM
screen.getByText()Description: Mencari elemen berdasarkan teks.
Example:
expect(screen.getByText('Click')).toBeInTheDocument()Output: Pass jika teks ditemukan
screen.getByText()Mencari elemen berdasarkan teks.
expect(screen.getByText('Click')).toBeInTheDocument()Pass jika teks ditemukan
screen.getByRole()Description: Mencari elemen berdasarkan ARIA role.
Example:
screen.getByRole('button', { name: /click/i })Output: Elemen tombol
screen.getByRole()Mencari elemen berdasarkan ARIA role.
screen.getByRole('button', { name: /click/i })Elemen tombol
fireEvent.click()Description: Mensimulasikan event klik pada elemen.
Example:
fireEvent.click(screen.getByRole('button'))Output: Handler onClick terpicu
fireEvent.click()Mensimulasikan event klik pada elemen.
fireEvent.click(screen.getByRole('button'))Handler onClick terpicu
userEvent (Testing Library)Description: Simulasi interaksi user yang lebih realistis.
Example:
import userEvent from '@testing-library/user-event' await userEvent.click(button)
Output: Klik diproses
userEvent (Testing Library)Simulasi interaksi user yang lebih realistis.
import userEvent from '@testing-library/user-event' await userEvent.click(button)
Klik diproses
E2E-TESTING
Name
Description
Example
Output
Playwright - TestDescription: E2E testing dengan browser nyata.
Example:
import { test, expect } from '@playwright/test'
test('homepage memiliki judul', async ({ page }) => {
await page.goto('http://localhost:3000')
await expect(page).toHaveTitle(/Dokumentasi/)
})Output: Pass
Playwright - TestE2E testing dengan browser nyata.
import { test, expect } from '@playwright/test'
test('homepage memiliki judul', async ({ page }) => {
await page.goto('http://localhost:3000')
await expect(page).toHaveTitle(/Dokumentasi/)
})Pass
Playwright - locatorDescription: Mencari elemen di halaman.
Example:
page.locator('button#submit')Output: Locator siap digunakan
Playwright - locatorMencari elemen di halaman.
page.locator('button#submit')Locator siap digunakan
Cypress - TestDescription: E2E testing dengan Cypress.
Example:
describe('Homepage', () => {
it('menampilkan judul', () => {
cy.visit('/')
cy.contains('Dokumentasi')
})
})Output: Pass
Cypress - TestE2E testing dengan Cypress.
describe('Homepage', () => {
it('menampilkan judul', () => {
cy.visit('/')
cy.contains('Dokumentasi')
})
})Pass
Cypress - cy.get() / cy.contains()Description: Mencari elemen di halaman.
Example:
cy.get('.btn').click()Output: Klik tombol
Cypress - cy.get() / cy.contains()Mencari elemen di halaman.
cy.get('.btn').click()Klik tombol
MOCKING
Name
Description
Example
Output
jest.fn()Description: Membuat fungsi mock.
Example:
const mockFn = jest.fn() mockFn() expect(mockFn).toHaveBeenCalled()
Output: Pass
jest.fn()Membuat fungsi mock.
const mockFn = jest.fn() mockFn() expect(mockFn).toHaveBeenCalled()
Pass
vi.fn() (Vitest)Description: Fungsi mock di Vitest.
Example:
import { vi } from 'vitest'
const mockFn = vi.fn()Output: Fungsi mock
vi.fn() (Vitest)Fungsi mock di Vitest.
import { vi } from 'vitest'
const mockFn = vi.fn()Fungsi mock
jest.spyOn()Description: Memata-matai method pada objek.
Example:
const spy = jest.spyOn(console, 'log')
expect(spy).toHaveBeenCalledWith('hello')Output: Spy aktif
jest.spyOn()Memata-matai method pada objek.
const spy = jest.spyOn(console, 'log')
expect(spy).toHaveBeenCalledWith('hello')Spy aktif
Mock ModuleDescription: Mengganti module dengan versi mock.
Example:
jest.mock('axios', () => ({
get: jest.fn(() => Promise.resolve({ data: {} }))
}))Output: Axios diganti mock
Mock ModuleMengganti module dengan versi mock.
jest.mock('axios', () => ({
get: jest.fn(() => Promise.resolve({ data: {} }))
}))Axios diganti mock
SNAPSHOT-TESTING
Name
Description
Example
Output
toMatchSnapshot()Description: Membandingkan output dengan file snapshot.
Example:
expect(tree).toMatchSnapshot()
Output: File .snap diperbarui jika berbeda
toMatchSnapshot()Membandingkan output dengan file snapshot.
expect(tree).toMatchSnapshot()
File .snap diperbarui jika berbeda
toMatchInlineSnapshot()Description: Snapshot disimpan langsung dalam kode tes.
Example:
expect(result).toMatchInlineSnapshot(`"expected value"`)
Output: Snapshot inline
toMatchInlineSnapshot()Snapshot disimpan langsung dalam kode tes.
expect(result).toMatchInlineSnapshot(`"expected value"`)
Snapshot inline
CONFIGURATION
Name
Description
Example
Output
vitest.config.tsDescription: Konfigurasi Vitest di proyek.
Example:
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
globals: true,
environment: 'jsdom',
setupFiles: './src/test/setup.ts'
}
})Output: Vitest siap
vitest.config.tsKonfigurasi Vitest di proyek.
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
globals: true,
environment: 'jsdom',
setupFiles: './src/test/setup.ts'
}
})Vitest siap
jest.config.tsDescription: Konfigurasi Jest.
Example:
import type { Config } from 'jest'
const config: Config = {
testEnvironment: 'jsdom',
setupFilesAfterSetup: ['<rootDir>/jest.setup.ts']
}
export default configOutput: Jest siap
jest.config.tsKonfigurasi Jest.
import type { Config } from 'jest'
const config: Config = {
testEnvironment: 'jsdom',
setupFilesAfterSetup: ['<rootDir>/jest.setup.ts']
}
export default configJest siap
playwright.config.tsDescription: Konfigurasi Playwright.
Example:
import { defineConfig } from '@playwright/test'
export default defineConfig({
use: { baseURL: 'http://localhost:3000' },
webServer: { command: 'pnpm dev', port: 3000 }
})Output: Playwright siap
playwright.config.tsKonfigurasi Playwright.
import { defineConfig } from '@playwright/test'
export default defineConfig({
use: { baseURL: 'http://localhost:3000' },
webServer: { command: 'pnpm dev', port: 3000 }
})Playwright siap
cypress.config.tsDescription: Konfigurasi Cypress.
Example:
import { defineConfig } from 'cypress'
export default defineConfig({
e2e: { baseUrl: 'http://localhost:3000' }
})Output: Cypress siap
cypress.config.tsKonfigurasi Cypress.
import { defineConfig } from 'cypress'
export default defineConfig({
e2e: { baseUrl: 'http://localhost:3000' }
})Cypress siap