Zero dependencies, full TypeScript support
๐ฌ๐ง English | ๐ฎ๐น Italiano
Node.js v20+ has a native test runner, but:
- Only provides basic
node:assert - No
expect()API - No Jest-like matchers
node-test-expect provides:
- Zero dependencies (uses
node:assertinternally) - Full TypeScript support
- Jest-compatible API
- Native
node:testmock integration
npm install node-test-expectimport { expect } from 'node-test-expect'
import { test, mock } from 'node:test'
test('basic assertions', () => {
expect(1 + 1).toBe(2)
expect({ a: 1 }).toEqual({ a: 1 })
expect('hello').toContain('ell')
})
test('mock assertions', () => {
const fn = mock.fn()
fn('hello')
expect(fn).toHaveBeenCalledWith('hello')
})
test('async', async () => {
await expect(Promise.resolve(42)).resolves.toBe(42)
})Basic: toBe, toEqual, toStrictEqual
Truthiness: toBeTruthy, toBeFalsy, toBeNull, toBeUndefined
Numbers: toBeGreaterThan, toBeLessThan, toBeCloseTo
Strings/Arrays: toContain, toMatch, toHaveLength
Objects: toHaveProperty, toMatchObject, toBeInstanceOf
Mocks: toHaveBeenCalled, toHaveBeenCalledWith, toHaveBeenCalledTimes
Node.js v20+ ha un test runner nativo, ma:
- Fornisce solo
node:assertbase - Nessuna API
expect() - Nessun matcher stile Jest
node-test-expect fornisce:
- Zero dipendenze (usa
node:assertinternamente) - Supporto TypeScript completo
- API compatibile Jest
- Integrazione mock
node:testnativa
npm install node-test-expectimport { expect } from 'node-test-expect'
import { test, mock } from 'node:test'
test('asserzioni base', () => {
expect(1 + 1).toBe(2)
expect({ a: 1 }).toEqual({ a: 1 })
expect('ciao').toContain('ia')
})
test('asserzioni mock', () => {
const fn = mock.fn()
fn('ciao')
expect(fn).toHaveBeenCalledWith('ciao')
})expect({ name: 'John', age: 30 }).toEqual({
name: expect.any(String),
age: expect.any(Number)
})
expect('hello world').toEqual(expect.stringContaining('world'))
expect([1, 2, 3]).toEqual(expect.arrayContaining([1, 2]))- Node.js >= 20.0.0
MIT