Skip to content
Vitest 3
Main Navigation Leitfaden & APIKonfigurationBrowser-ModusFortgeschritten API
3.2.0
2.1.9
1.6.1
0.34.6

Deutsch

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Deutsch

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Aussehen

Sidebar Navigation

Einführung

Warum Vitest

Erste Schritte

Funktionen

Vitest konfigurieren

API

Test-API-Referenz

Mock-Funktionen

Vi

expect

expectTypeOf

assert

assertType

Leitfaden

Befehlszeilenschnittstelle

Testfilterung

Testprojekte

Reporter

Code-Abdeckung

Snapshot

Mocking

Parallelisierung

Typüberprüfungen

Vitest UI

Tests im Quellcode

Test-Kontext

Test-Annotationen

Testumgebung

Matcher erweitern

IDE-Integrationen

Debugging

Häufige Fehler

Migrationsleitfaden

Migration zu Vitest 3.0

Migration von Jest

Performance

Leistungsprofilierung von Tests

Leistung verbessern

Browser-Modus

Erweiterte API

Vergleiche mit anderen Test-Runnern

Auf dieser Seite

assert ​

Vitest reexportiert die assert-Methode von chai zur Validierung von Invarianten.

assert ​

  • Typ: (expression: any, message?: string) => asserts expression

Stellt sicher, dass der gegebene expression einen Wahrheitswert hat (truthy ist), andernfalls schlägt die Assertion fehl.

ts
import { assert, test } from 'vitest';

test('assert', () => {
  assert('foo' !== 'bar', 'foo sollte nicht gleich bar sein');
});

fail ​

  • Typ:
    • (message?: string) => never
    • <T>(actual: T, expected: T, message?: string, operator?: string) => never

Erzwingt einen Assertionsfehler.

ts
import { assert, test } from 'vitest';

test('assert.fail', () => {
  assert.fail('Fehlermeldung bei Fehlschlag');
  assert.fail('foo', 'bar', 'foo ist nicht bar', '===');
});

isOk ​

  • Typ: <T>(value: T, message?: string) => void
  • Alias: ok

Stellt sicher, dass der gegebene value einen Wahrheitswert hat (truthy ist).

ts
import { assert, test } from 'vitest';

test('assert.isOk', () => {
  assert.isOk('foo', 'Jeder truthy Wert ist ok');
  assert.isOk(false, 'Dies wird fehlschlagen, da false nicht truthy ist');
});

isNotOk ​

  • Typ: <T>(value: T, message?: string) => void
  • Alias: notOk

Stellt sicher, dass der gegebene value einen Falschwert hat (falsy ist).

ts
import { assert, test } from 'vitest';

test('assert.isNotOk', () => {
  assert.isNotOk('foo', 'Dies wird fehlschlagen, da ein truthy Wert nicht "not ok" ist');
  assert.isNotOk(false, 'Dies wird erfolgreich sein, da false falsy ist');
});

equal ​

  • Typ: <T>(actual: T, expected: T, message?: string) => void

Stellt die nicht-strikte Gleichheit (==) von actual und expected sicher.

ts
import { assert, test } from 'vitest';

test('assert.equal', () => {
  assert.equal(Math.sqrt(4), '2');
});

notEqual ​

  • Typ: <T>(actual: T, expected: T, message?: string) => void

Stellt die nicht-strikte Ungleichheit (!=) von actual und expected sicher.

ts
import { assert, test } from 'vitest';

test('assert.notEqual', () => {
  assert.notEqual(Math.sqrt(4), 3);
});

strictEqual ​

  • Typ: <T>(actual: T, expected: T, message?: string) => void

Stellt die strikte Gleichheit (===) von actual und expected sicher.

ts
import { assert, test } from 'vitest';

test('assert.strictEqual', () => {
  assert.strictEqual(Math.sqrt(4), 2);
});

deepEqual ​

  • Typ: <T>(actual: T, expected: T, message?: string) => void

Stellt sicher, dass actual tief gleich expected ist.

ts
import { assert, test } from 'vitest';

test('assert.deepEqual', () => {
  assert.deepEqual({ color: 'green' }, { color: 'green' });
});

notDeepEqual ​

  • Typ: <T>(actual: T, expected: T, message?: string) => void

Stellt sicher, dass actual und expected nicht tief gleich sind.

ts
import { assert, test } from 'vitest';

test('assert.notDeepEqual', () => {
  assert.notDeepEqual({ color: 'green' }, { color: 'red' });
});

isAbove ​

  • Typ: (valueToCheck: number, valueToBeAbove: number, message?: string) => void

Stellt sicher, dass valueToCheck strikt größer als (>) valueToBeAbove ist.

ts
import { assert, test } from 'vitest';

test('assert.isAbove', () => {
  assert.isAbove(5, 2, '5 ist strikt größer als 2');
});

isAtLeast ​

  • Typ: (valueToCheck: number, valueToBeAtLeast: number, message?: string) => void

Stellt sicher, dass valueToCheck größer oder gleich (>=) valueToBeAtLeast ist.

ts
import { assert, test } from 'vitest';

test('assert.isAtLeast', () => {
  assert.isAtLeast(5, 2, '5 ist größer oder gleich 2');
  assert.isAtLeast(3, 3, '3 ist größer oder gleich 3');
});

isBelow ​

  • Typ: (valueToCheck: number, valueToBeBelow: number, message?: string) => void

Stellt sicher, dass valueToCheck strikt kleiner als (<) valueToBeBelow ist.

ts
import { assert, test } from 'vitest';

test('assert.isBelow', () => {
  assert.isBelow(3, 6, '3 ist strikt kleiner als 6');
});

isAtMost ​

  • Typ: (valueToCheck: number, valueToBeAtMost: number, message?: string) => void

Stellt sicher, dass valueToCheck kleiner oder gleich (<=) valueToBeAtMost ist.

ts
import { assert, test } from 'vitest';

test('assert.isAtMost', () => {
  assert.isAtMost(3, 6, '3 ist kleiner oder gleich 6');
  assert.isAtMost(4, 4, '4 ist kleiner oder gleich 4');
});

isTrue ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value true ist.

ts
import { assert, test } from 'vitest';

const testPassed = true;

test('assert.isTrue', () => {
  assert.isTrue(testPassed);
});

isNotTrue ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value nicht true ist.

ts
import { assert, test } from 'vitest';

const testPassed = 'ok';

test('assert.isNotTrue', () => {
  assert.isNotTrue(testPassed);
});

isFalse ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value false ist.

ts
import { assert, test } from 'vitest';

const testPassed = false;

test('assert.isFalse', () => {
  assert.isFalse(testPassed);
});

isNotFalse ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value nicht false ist.

ts
import { assert, test } from 'vitest';

const testPassed = 'no';

test('assert.isNotFalse', () => {
  assert.isNotFalse(testPassed);
});

isNull ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value null ist.

ts
import { assert, test } from 'vitest';

const error = null;

test('assert.isNull', () => {
  assert.isNull(error, 'error ist null');
});

isNotNull ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value nicht null ist.

ts
import { assert, test } from 'vitest';

const error = { message: 'Es ist ein Fehler aufgetreten' };

test('assert.isNotNull', () => {
  assert.isNotNull(error, 'error ist nicht null, sondern ein Objekt');
});

isNaN ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value NaN ist.

ts
import { assert, test } from 'vitest';

const calculation = 1 * 'vitest';

test('assert.isNaN', () => {
  assert.isNaN(calculation, '1 * "vitest" ist NaN');
});

isNotNaN ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value nicht NaN ist.

ts
import { assert, test } from 'vitest';

const calculation = 1 * 2;

test('assert.isNotNaN', () => {
  assert.isNotNaN(calculation, '1 * 2 ist nicht NaN, sondern 2');
});

exists ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value weder null noch undefined ist.

ts
import { assert, test } from 'vitest';

const name = 'foo';

test('assert.exists', () => {
  assert.exists(name, 'foo ist weder null noch undefined');
});

notExists ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value entweder null oder undefined ist.

ts
import { assert, test } from 'vitest';

const foo = null;
const bar = undefined;

test('assert.notExists', () => {
  assert.notExists(foo, 'foo ist null, existiert also nicht');
  assert.notExists(bar, 'bar ist undefined, existiert also nicht');
});

isUndefined ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value undefined ist.

ts
import { assert, test } from 'vitest';

const name = undefined;

test('assert.isUndefined', () => {
  assert.isUndefined(name, 'name ist undefined');
});

isDefined ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value nicht undefined ist.

ts
import { assert, test } from 'vitest';

const name = 'foo';

test('assert.isDefined', () => {
  assert.isDefined(name, 'name ist nicht undefined');
});

isFunction ​

  • Typ: <T>(value: T, message?: string) => void
  • Alias: isCallable Stellt sicher, dass value eine Funktion ist.
ts
import { assert, test } from 'vitest';

function name() {
  return 'foo';
}

test('assert.isFunction', () => {
  assert.isFunction(name, 'name ist eine Funktion');
});

isNotFunction ​

  • Typ: <T>(value: T, message?: string) => void
  • Alias: isNotCallable

Stellt sicher, dass value keine Funktion ist.

ts
import { assert, test } from 'vitest';

const name = 'foo';

test('assert.isNotFunction', () => {
  assert.isNotFunction(name, 'name ist keine Funktion, sondern ein String');
});

isObject ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value ein Objekt vom Typ Object ist (wie durch Object.prototype.toString offenbart). Die Assertion trifft nicht auf untergeordnete Objekte zu.

ts
import { assert, test } from 'vitest';

const someThing = { color: 'red', shape: 'circle' };

test('assert.isObject', () => {
  assert.isObject(someThing, 'someThing ist ein Objekt');
});

isNotObject ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value kein Objekt vom Typ Object ist (wie durch Object.prototype.toString offenbart). Die Assertion trifft nicht auf untergeordnete Objekte zu.

ts
import { assert, test } from 'vitest';

const someThing = 'redCircle';

test('assert.isNotObject', () => {
  assert.isNotObject(someThing, 'someThing ist kein Objekt, sondern ein String');
});

isArray ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value ein Array ist.

ts
import { assert, test } from 'vitest';

const color = ['red', 'green', 'yellow'];

test('assert.isArray', () => {
  assert.isArray(color, 'color ist ein Array');
});

isNotArray ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value kein Array ist.

ts
import { assert, test } from 'vitest';

const color = 'red';

test('assert.isNotArray', () => {
  assert.isNotArray(color, 'color ist kein Array, sondern ein String');
});

isString ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value ein String ist.

ts
import { assert, test } from 'vitest';

const color = 'red';

test('assert.isString', () => {
  assert.isString(color, 'color ist ein String');
});

isNotString ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value kein String ist.

ts
import { assert, test } from 'vitest';

const color = ['red', 'green', 'yellow'];

test('assert.isNotString', () => {
  assert.isNotString(color, 'color ist kein String, sondern ein Array');
});

isNumber ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value eine Zahl ist.

ts
import { assert, test } from 'vitest';

const colors = 3;

test('assert.isNumber', () => {
  assert.isNumber(colors, 'colors ist eine Zahl');
});

isNotNumber ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value keine Zahl ist.

ts
import { assert, test } from 'vitest';

const colors = '3 colors';

test('assert.isNotNumber', () => {
  assert.isNotNumber(colors, 'colors ist keine Zahl, sondern ein String');
});

isFinite ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value eine endliche Zahl ist (nicht NaN, Infinity).

ts
import { assert, test } from 'vitest';

const colors = 3;

test('assert.isFinite', () => {
  assert.isFinite(colors, 'colors ist eine Zahl, nicht NaN oder Infinity');
});

isBoolean ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value ein Boolean ist.

ts
import { assert, test } from 'vitest';

const isReady = true;

test('assert.isBoolean', () => {
  assert.isBoolean(isReady, 'isReady ist ein Boolean');
});

isNotBoolean ​

  • Typ: <T>(value: T, message?: string) => void

Stellt sicher, dass value kein Boolean ist.

ts
import { assert, test } from 'vitest';

const isReady = 'sure';

test('assert.isNotBoolean', () => {
  assert.isNotBoolean(isReady, 'isReady ist kein Boolean, sondern ein String');
});

typeOf ​

  • Typ: <T>(value: T, name: string, message?: string) => void

Stellt sicher, dass der Typ von value name ist, wie durch Object.prototype.toString bestimmt.

ts
import { assert, test } from 'vitest';

test('assert.typeOf', () => {
  assert.typeOf({ color: 'red' }, 'object', 'wir haben ein Objekt');
  assert.typeOf(['red', 'green'], 'array', 'wir haben ein Array');
  assert.typeOf('red', 'string', 'wir haben einen String');
  assert.typeOf(/red/, 'regexp', 'wir haben einen regulären Ausdruck');
  assert.typeOf(null, 'null', 'wir haben null');
  assert.typeOf(undefined, 'undefined', 'wir haben undefined');
});

notTypeOf ​

  • Typ: <T>(value: T, name: string, message?: string) => void

Stellt sicher, dass der Typ von value nicht name ist, wie durch Object.prototype.toString bestimmt.

ts
import { assert, test } from 'vitest';

test('assert.notTypeOf', () => {
  assert.notTypeOf('red', 'number', '"red" ist keine Zahl');
});

instanceOf ​

  • Typ: <T>(value: T, constructor: Function, message?: string) => void

Stellt sicher, dass value eine Instanz von constructor ist.

ts
import { assert, test } from 'vitest';

function Person(name) {
  this.name = name;
}
const foo = new Person('foo');

class Tea {
  constructor(name) {
    this.name = name;
  }
}
const coffee = new Tea('coffee');

test('assert.instanceOf', () => {
  assert.instanceOf(foo, Person, 'foo ist eine Instanz von Person');
  assert.instanceOf(coffee, Tea, 'coffee ist eine Instanz von Tea');
});

notInstanceOf ​

  • Typ: <T>(value: T, constructor: Function, message?: string) => void

Stellt sicher, dass value keine Instanz von constructor ist.

ts
import { assert, test } from 'vitest';

function Person(name) {
  this.name = name;
}
const foo = new Person('foo');

class Tea {
  constructor(name) {
    this.name = name;
  }
}
const coffee = new Tea('coffee');

test('assert.notInstanceOf', () => {
  assert.notInstanceOf(foo, Tea, 'foo ist keine Instanz von Tea');
});

include ​

  • Typ:
    • (haystack: string, needle: string, message?: string) => void
    • <T>(haystack: readonly T[] | ReadonlySet<T> | ReadonlyMap<any, T>, needle: T, message?: string) => void
    • <T extends object>(haystack: WeakSet<T>, needle: T, message?: string) => void
    • <T>(haystack: T, needle: Partial<T>, message?: string) => void

Stellt sicher, dass haystack needle enthält. Kann verwendet werden, um das Enthaltensein eines Wertes in einem Array, eines Teilstrings in einem String oder einer Untermenge von Eigenschaften in einem Objekt zu bestätigen.

ts
import { assert, test } from 'vitest';

test('assert.include', () => {
  assert.include([1, 2, 3], 2, 'Array enthält Wert');
  assert.include('foobar', 'foo', 'String enthält Teilstring');
  assert.include(
    { foo: 'bar', hello: 'universe' },
    { foo: 'bar' },
    'Objekt enthält Eigenschaft'
  );
});

notInclude ​

  • Typ:
    • (haystack: string, needle: string, message?: string) => void
    • <T>(haystack: readonly T[] | ReadonlySet<T> | ReadonlyMap<any, T>, needle: T, message?: string) => void
    • <T extends object>(haystack: WeakSet<T>, needle: T, message?: string) => void
    • <T>(haystack: T, needle: Partial<T>, message?: string) => void

Stellt sicher, dass haystack needle nicht enthält. Kann verwendet werden, um das Fehlen eines Wertes in einem Array, eines Teilstrings in einem String oder einer Untermenge von Eigenschaften in einem Objekt zu bestätigen.

ts
import { assert, test } from 'vitest';

test('assert.notInclude', () => {
  assert.notInclude([1, 2, 3], 4, "Array enthält 4 nicht");
  assert.notInclude('foobar', 'baz', "foobar enthält baz nicht");
  assert.notInclude(
    { foo: 'bar', hello: 'universe' },
    { foo: 'baz' },
    "Objekt enthält Eigenschaft nicht"
  );
});

deepInclude ​

  • Typ:
  • (haystack: string, needle: string, message?: string) => void
  • <T>(haystack: readonly T[] | ReadonlySet<T> | ReadonlyMap<any, T>, needle: T, message?: string) => void
  • <T>(haystack: T, needle: T extends WeakSet<any> ? never : Partial<T>, message?: string) => void

Stellt sicher, dass haystack needle enthält. Kann verwendet werden, um die Aufnahme eines Wertes in ein Array oder einer Untermenge von Eigenschaften in einem Objekt zu bestätigen. Es wird eine tiefe Gleichheitsprüfung verwendet.

ts
import { assert, test } from 'vitest';

const obj1 = { a: 1 };
const obj2 = { b: 2 };

test('assert.deepInclude', () => {
  assert.deepInclude([obj1, obj2], { a: 1 });
  assert.deepInclude({ foo: obj1, bar: obj2 }, { foo: { a: 1 } });
});

notDeepInclude ​

  • Typ:
    • (haystack: string, needle: string, message?: string) => void
    • <T>(haystack: readonly T[] | ReadonlySet<T> | ReadonlyMap<any, T>, needle: T, message?: string) => void
    • <T>(haystack: T, needle: T extends WeakSet<any> ? never : Partial<T>, message?: string) => void

Stellt sicher, dass haystack needle nicht enthält. Kann verwendet werden, um die Abwesenheit eines Wertes in einem Array oder einer Untermenge von Eigenschaften in einem Objekt zu bestätigen. Es wird eine tiefe Gleichheitsprüfung verwendet.

ts
import { assert, test } from 'vitest';

const obj1 = { a: 1 };
const obj2 = { b: 2 };

test('assert.notDeepInclude', () => {
  assert.notDeepInclude([obj1, obj2], { a: 10 });
  assert.notDeepInclude({ foo: obj1, bar: obj2 }, { foo: { a: 10 } });
});

nestedInclude ​

  • Typ: (haystack: any, needle: any, message?: string) => void

Stellt sicher, dass haystack needle enthält. Kann verwendet werden, um die Aufnahme einer Untermenge von Eigenschaften in einem Objekt zu bestätigen. Ermöglicht die Verwendung von Punkt- und Klammernotation zum Referenzieren verschachtelter Eigenschaften. [] und . in Eigenschaftsnamen können mit doppelten Backslashes maskiert werden.

ts
import { assert, test } from 'vitest';

test('assert.nestedInclude', () => {
  assert.nestedInclude({ '.a': { b: 'x' } }, { '\\.a.[b]': 'x' });
  assert.nestedInclude({ a: { '[b]': 'x' } }, { 'a.\\[b\\]': 'x' });
});

notNestedInclude ​

  • Typ: (haystack: any, needle: any, message?: string) => void

Stellt sicher, dass haystack needle nicht enthält. Kann verwendet werden, um die Abwesenheit einer Untermenge von Eigenschaften in einem Objekt zu bestätigen. Ermöglicht die Verwendung von Punkt- und Klammernotation zum Referenzieren verschachtelter Eigenschaften. [] und . in Eigenschaftsnamen können mit doppelten Backslashes maskiert werden.

ts
import { assert, test } from 'vitest';

test('assert.notNestedInclude', () => {
  assert.notNestedInclude({ '.a': { b: 'x' } }, { '\\.a.b': 'y' });
  assert.notNestedInclude({ a: { '[b]': 'x' } }, { 'a.\\[b\\]': 'y' });
});

deepNestedInclude ​

  • Typ: (haystack: any, needle: any, message?: string) => void

Stellt sicher, dass haystack needle enthält. Kann verwendet werden, um die Aufnahme einer Untermenge von Eigenschaften in einem Objekt zu bestätigen, während auf tiefe Gleichheit geprüft wird. Ermöglicht die Verwendung von Punkt- und Klammernotation zum Referenzieren verschachtelter Eigenschaften. [] und . in Eigenschaftsnamen können mit doppelten Backslashes maskiert werden.

ts
import { assert, test } from 'vitest';

test('assert.deepNestedInclude', () => {
  assert.deepNestedInclude({ a: { b: [{ x: 1 }] } }, { 'a.b[0]': { x: 1 } });
  assert.deepNestedInclude(
    { '.a': { '[b]': { x: 1 } } },
    { '\\.a.\\[b\\]': { x: 1 } }
  );
});

notDeepNestedInclude ​

  • Typ: (haystack: any, needle: any, message?: string) => void

Stellt sicher, dass haystack needle nicht enthält. Kann verwendet werden, um die Abwesenheit einer Untermenge von Eigenschaften in einem Objekt zu bestätigen, während auf tiefe Gleichheit geprüft wird. Ermöglicht die Verwendung von Punkt- und Klammernotation zum Referenzieren verschachtelter Eigenschaften. [] und . in Eigenschaftsnamen können mit doppelten Backslashes maskiert werden.

ts
import { assert, test } from 'vitest';

test('assert.notDeepNestedInclude', () => {
  assert.notDeepNestedInclude({ a: { b: [{ x: 1 }] } }, { 'a.b[0]': { y: 1 } });
  assert.notDeepNestedInclude(
    { '.a': { '[b]': { x: 1 } } },
    { '\\.a.\\[b\\]': { y: 2 } }
  );
});

ownInclude ​

  • Typ: (haystack: any, needle: any, message?: string) => void

Stellt sicher, dass haystack needle enthält. Kann verwendet werden, um die Aufnahme einer Untermenge von Eigenschaften in einem Objekt zu bestätigen, während geerbte Eigenschaften ignoriert werden.

ts
import { assert, test } from 'vitest';

test('assert.ownInclude', () => {
  assert.ownInclude({ a: 1 }, { a: 1 });
});

notOwnInclude ​

  • Typ: (haystack: any, needle: any, message?: string) => void

Stellt sicher, dass haystack needle nicht enthält. Kann verwendet werden, um die Abwesenheit einer Untermenge von Eigenschaften in einem Objekt zu bestätigen, während geerbte Eigenschaften ignoriert werden.

ts
import { assert, test } from 'vitest';

const obj1 = {
  b: 2,
};

const obj2 = Object.create(obj1);
obj2.a = 1;

test('assert.notOwnInclude', () => {
  assert.notOwnInclude(obj2, { b: 2 });
});

deepOwnInclude ​

  • Typ: (haystack: any, needle: any, message?: string) => void

Stellt sicher, dass haystack needle enthält. Kann verwendet werden, um die Aufnahme einer Untermenge von Eigenschaften in einem Objekt zu bestätigen, während geerbte Eigenschaften ignoriert und auf tiefe Gleichheit geprüft wird.

ts
import { assert, test } from 'vitest';

test('assert.deepOwnInclude', () => {
  assert.deepOwnInclude({ a: { b: 2 } }, { a: { b: 2 } });
});

notDeepOwnInclude ​

  • Typ: (haystack: any, needle: any, message?: string) => void

Stellt sicher, dass haystack needle nicht enthält. Kann verwendet werden, um die Abwesenheit einer Untermenge von Eigenschaften in einem Objekt zu bestätigen, während geerbte Eigenschaften ignoriert und auf tiefe Gleichheit geprüft wird.

ts
import { assert, test } from 'vitest';

test('assert.notDeepOwnInclude', () => {
  assert.notDeepOwnInclude({ a: { b: 2 } }, { a: { c: 3 } });
});

match ​

  • Typ: (value: string, regexp: RegExp, message?: string) => void

Stellt sicher, dass value dem regulären Ausdruck regexp entspricht.

ts
import { assert, test } from 'vitest';

test('assert.match', () => {
  assert.match('foobar', /^foo/, 'Regulärer Ausdruck stimmt überein');
});

notMatch ​

  • Typ: (value: string, regexp: RegExp, message?: string) => void

Stellt sicher, dass value dem regulären Ausdruck regexp nicht entspricht.

ts
import { assert, test } from 'vitest';

test('assert.notMatch', () => {
  assert.notMatch('foobar', /baz/, 'Regulärer Ausdruck stimmt nicht überein');
});

property ​

  • Typ: <T>(object: T, property: string, message?: string) => void

Stellt sicher, dass object eine direkte oder geerbte Eigenschaft mit dem Namen property hat.

ts
import { assert, test } from 'vitest';

test('assert.property', () => {
  assert.property({ tea: { green: 'matcha' } }, 'tea');
  assert.property({ tea: { green: 'matcha' } }, 'toString');
});

notProperty ​

  • Typ: <T>(object: T, property: string, message?: string) => void

Stellt sicher, dass object keine direkte oder geerbte Eigenschaft mit dem Namen property hat.

ts
import { assert, test } from 'vitest';

test('assert.notProperty', () => {
  assert.notProperty({ tea: { green: 'matcha' } }, 'coffee');
});

propertyVal ​

  • Typ: <T, V>(object: T, property: string, value: V, message?: string) => void

Stellt sicher, dass object eine direkte oder geerbte Eigenschaft mit dem Namen property und dem Wert value hat. Verwendet eine strikte Gleichheitsprüfung (===).

ts
import { assert, test } from 'vitest';

test('assert.propertyVal', () => {
  assert.propertyVal({ tea: 'is good' }, 'tea', 'is good');
});

notPropertyVal ​

  • Typ: <T, V>(object: T, property: string, value: V, message?: string) => void

Stellt sicher, dass object keine direkte oder geerbte Eigenschaft mit dem Namen property und dem Wert value hat. Verwendet eine strikte Gleichheitsprüfung (===).

ts
import { assert, test } from 'vitest';

test('assert.notPropertyVal', () => {
  assert.notPropertyVal({ tea: 'is good' }, 'tea', 'is bad');
  assert.notPropertyVal({ tea: 'is good' }, 'coffee', 'is good');
});

deepPropertyVal ​

  • Typ: <T, V>(object: T, property: string, value: V, message?: string) => void

Stellt sicher, dass object eine direkte oder geerbte Eigenschaft mit dem Namen property und dem Wert value hat. Verwendet eine tiefe Gleichheitsprüfung.

ts
import { assert, test } from 'vitest';

test('assert.deepPropertyVal', () => {
  assert.deepPropertyVal({ tea: { green: 'matcha' } }, 'tea', {
    green: 'matcha',
  });
});

notDeepPropertyVal ​

  • Typ: <T, V>(object: T, property: string, value: V, message?: string) => void

Stellt sicher, dass object keine direkte oder geerbte Eigenschaft mit dem Namen property und dem Wert value hat. Verwendet eine tiefe Gleichheitsprüfung.

ts
import { assert, test } from 'vitest';

test('assert.notDeepPropertyVal', () => {
  assert.notDeepPropertyVal({ tea: { green: 'matcha' } }, 'tea', {
    black: 'matcha',
  });
  assert.notDeepPropertyVal({ tea: { green: 'matcha' } }, 'tea', {
    green: 'oolong',
  });
  assert.notDeepPropertyVal({ tea: { green: 'matcha' } }, 'coffee', {
    green: 'matcha',
  });
});

nestedProperty ​

  • Typ: <T>(object: T, property: string, message?: string) => void

Stellt sicher, dass object eine direkte oder geerbte Eigenschaft mit dem Namen property hat, die ein String sein kann, der Punkt- und Klammernotation für verschachtelte Referenzen verwendet.

ts
import { assert, test } from 'vitest';

test('assert.nestedProperty', () => {
  assert.nestedProperty({ tea: { green: 'matcha' } }, 'tea.green');
});

notNestedProperty ​

  • Typ: <T>(object: T, property: string, message?: string) => void

Stellt sicher, dass object keine direkte oder geerbte Eigenschaft mit dem Namen property hat, die ein String sein kann, der Punkt- und Klammernotation für verschachtelte Referenzen verwendet.

ts
import { assert, test } from 'vitest';

test('assert.notNestedProperty', () => {
  assert.notNestedProperty({ tea: { green: 'matcha' } }, 'tea.oolong');
});

nestedPropertyVal ​

  • Typ: <T>(object: T, property: string, value: any, message?: string) => void

Stellt sicher, dass object eine Eigenschaft mit dem Namen property und dem Wert value hat. property kann Punkt- und Klammernotation für verschachtelte Referenzen verwenden. Verwendet eine strikte Gleichheitsprüfung (===).

ts
import { assert, test } from 'vitest';

test('assert.nestedPropertyVal', () => {
  assert.nestedPropertyVal({ tea: { green: 'matcha' } }, 'tea.green', 'matcha');
});

notNestedPropertyVal ​

  • Typ: <T>(object: T, property: string, value: any, message?: string) => void

Stellt sicher, dass object keine Eigenschaft mit dem Namen property und dem Wert value hat. property kann Punkt- und Klammernotation für verschachtelte Referenzen verwenden. Verwendet eine strikte Gleichheitsprüfung (===).

ts
import { assert, test } from 'vitest';

test('assert.notNestedPropertyVal', () => {
  assert.notNestedPropertyVal(
    { tea: { green: 'matcha' } },
    'tea.green',
    'konacha'
  );
  assert.notNestedPropertyVal(
    { tea: { green: 'matcha' } },
    'coffee.green',
    'matcha'
  );
});

deepNestedPropertyVal ​

  • Typ: <T>(object: T, property: string, value: any, message?: string) => void

Stellt sicher, dass object eine Eigenschaft mit dem Namen property und dem Wert value hat. property kann Punkt- und Klammernotation für verschachtelte Referenzen verwenden. Verwendet eine tiefe Gleichheitsprüfung.

ts
import { assert, test } from 'vitest';

test('assert.deepNestedPropertyVal', () => {
  assert.deepNestedPropertyVal(
    { tea: { green: 'matcha' } },
    'tea.green',
    'konacha'
  );
  assert.deepNestedPropertyVal(
    { tea: { green: 'matcha' } },
    'coffee.green',
    'matcha'
  );
});

notDeepNestedPropertyVal ​

  • Typ: <T>(object: T, property: string, value: any, message?: string) => void

Stellt sicher, dass object keine Eigenschaft mit dem Namen property und dem Wert value hat. property kann Punkt- und Klammernotation für verschachtelte Referenzen verwenden. Verwendet eine tiefe Gleichheitsprüfung.

ts
import { assert, test } from 'vitest';

test('assert.notDeepNestedPropertyVal', () => {
  assert.notDeepNestedPropertyVal(
    { tea: { green: { matcha: 'yum' } } },
    'tea.green',
    { oolong: 'yum' }
  );
  assert.notDeepNestedPropertyVal(
    { tea: { green: { matcha: 'yum' } } },
    'tea.green',
    { matcha: 'yuck' }
  );
  assert.notDeepNestedPropertyVal(
    { tea: { green: { matcha: 'yum' } } },
    'tea.black',
    { matcha: 'yum' }
  );
});

lengthOf ​

  • Typ: <T extends { readonly length?: number | undefined } | { readonly size?: number | undefined }>(object: T, length: number, message?: string) => void

Stellt sicher, dass object eine length oder size mit dem erwarteten Wert hat.

ts
import { assert, test } from 'vitest';

test('assert.lengthOf', () => {
  assert.lengthOf([1, 2, 3], 3, 'Array hat Länge 3');
  assert.lengthOf('foobar', 6, 'String hat Länge 6');
  assert.lengthOf(new Set([1, 2, 3]), 3, 'Set hat Größe 3');
  assert.lengthOf(
    new Map([
      ['a', 1],
      ['b', 2],
      ['c', 3],
    ]),
    3,
    'Map hat Größe 3'
  );
});

hasAnyKeys ​

  • Typ: <T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void

Stellt sicher, dass object mindestens einen der angegebenen Schlüssel hat. Sie können auch ein einzelnes Objekt anstelle eines Schlüssel-Arrays angeben, und dessen Schlüssel werden als erwarteter Satz von Schlüsseln verwendet.

ts
import { assert, test } from 'vitest';

test('assert.hasAnyKeys', () => {
  assert.hasAnyKeys({ foo: 1, bar: 2, baz: 3 }, ['foo', 'iDontExist', 'baz']);
  assert.hasAnyKeys(
    { foo: 1, bar: 2, baz: 3 },
    { foo: 30, iDontExist: 99, baz: 1337 }
  );
  assert.hasAnyKeys(
    new Map([
      [{ foo: 1 }, 'bar'],
      ['key', 'value'],
    ]),
    [{ foo: 1 }, 'key']
  );
  assert.hasAnyKeys(new Set([{ foo: 'bar' }, 'anotherKey']), [
    { foo: 'bar' },
    'anotherKey',
  ]);
});

hasAllKeys ​

  • Typ: <T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void

Stellt sicher, dass object alle der angegebenen Schlüssel hat und keine weiteren. Sie können auch ein einzelnes Objekt anstelle eines Schlüssel-Arrays angeben, und dessen Schlüssel werden als erwarteter Satz von Schlüsseln verwendet.

ts
import { assert, test } from 'vitest';

test('assert.hasAllKeys', () => {
  assert.hasAllKeys({ foo: 1, bar: 2, baz: 3 }, ['foo', 'bar', 'baz']);
  assert.hasAllKeys(
    { foo: 1, bar: 2, baz: 3 },
    { foo: 30, bar: 99, baz: 1337 }
  );
  assert.hasAllKeys(
    new Map([
      [{ foo: 1 }, 'bar'],
      ['key', 'value'],
    ]),
    [{ foo: 1 }, 'key']
  );
  assert.hasAllKeys(
    new Set([{ foo: 'bar' }, 'anotherKey'], [{ foo: 'bar' }, 'anotherKey'])
  );
});

containsAllKeys ​

  • Typ: <T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void

Stellt sicher, dass object alle der angegebenen Schlüssel hat, aber möglicherweise weitere nicht aufgelistete Schlüssel. Sie können auch ein einzelnes Objekt anstelle eines Schlüssel-Arrays angeben, und dessen Schlüssel werden als erwarteter Satz von Schlüsseln verwendet.

ts
import { assert, test } from 'vitest';

test('assert.containsAllKeys', () => {
  assert.containsAllKeys({ foo: 1, bar: 2, baz: 3 }, ['foo', 'baz']);
  assert.containsAllKeys({ foo: 1, bar: 2, baz: 3 }, ['foo', 'bar', 'baz']);
  assert.containsAllKeys({ foo: 1, bar: 2, baz: 3 }, { foo: 30, baz: 1337 });
  assert.containsAllKeys(
    { foo: 1, bar: 2, baz: 3 },
    { foo: 30, bar: 99, baz: 1337 }
  );
  assert.containsAllKeys(
    new Map([
      [{ foo: 1 }, 'bar'],
      ['key', 'value'],
    ]),
    [{ foo: 1 }]
  );
  assert.containsAllKeys(
    new Map([
      [{ foo: 1 }, 'bar'],
      ['key', 'value'],
    ]),
    [{ foo: 1 }, 'key']
  );
  assert.containsAllKeys(
    new Set([{ foo: 'bar' }, 'anotherKey'], [{ foo: 'bar' }])
  );
  assert.containsAllKeys(
    new Set([{ foo: 'bar' }, 'anotherKey'], [{ foo: 'bar' }, 'anotherKey'])
  );
});

doesNotHaveAnyKeys ​

  • Typ: <T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void

Stellt sicher, dass object keinen der angegebenen Schlüssel hat. Sie können auch ein einzelnes Objekt anstelle eines Schlüssel-Arrays angeben, und dessen Schlüssel werden als erwarteter Satz von Schlüsseln verwendet.

ts
import { assert, test } from 'vitest';

test('assert.doesNotHaveAnyKeys', () => {
  assert.doesNotHaveAnyKeys({ foo: 1, bar: 2, baz: 3 }, [
    'one',
    'two',
    'example',
  ]);
  assert.doesNotHaveAnyKeys(
    { foo: 1, bar: 2, baz: 3 },
    { one: 1, two: 2, example: 'foo' }
  );
  assert.doesNotHaveAnyKeys(
    new Map([
      [{ foo: 1 }, 'bar'],
      ['key', 'value'],
    ]),
    [{ one: 'two' }, 'example']
  );
  assert.doesNotHaveAnyKeys(
    new Set([{ foo: 'bar' }, 'anotherKey'], [{ one: 'two' }, 'example'])
  );
});

doesNotHaveAllKeys ​

  • Typ: <T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void

Stellt sicher, dass object nicht alle der angegebenen Schlüssel hat. Sie können auch ein einzelnes Objekt anstelle eines Schlüssel-Arrays angeben, und dessen Schlüssel werden als erwarteter Satz von Schlüsseln verwendet.

ts
import { assert, test } from 'vitest';

test('assert.doesNotHaveAllKeys', () => {
  assert.doesNotHaveAllKeys({ foo: 1, bar: 2, baz: 3 }, [
    'one',
    'two',
    'example',
  ]);
  assert.doesNotHaveAllKeys(
    { foo: 1, bar: 2, baz: 3 },
    { one: 1, two: 2, example: 'foo' }
  );
  assert.doesNotHaveAllKeys(
    new Map([
      [{ foo: 1 }, 'bar'],
      ['key', 'value'],
    ]),
    [{ one: 'two' }, 'example']
  );
  assert.doesNotHaveAllKeys(new Set([{ foo: 'bar' }, 'anotherKey']), [
    { one: 'two' },
    'example',
  ]);
});

hasAnyDeepKeys ​

  • Typ: <T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void

Stellt sicher, dass object mindestens einen der angegebenen Schlüssel hat. Da Sets und Maps Objekte als Schlüssel haben können, können Sie diese Assertion verwenden, um einen tiefen Vergleich durchzuführen. Sie können auch ein einzelnes Objekt anstelle eines Schlüssel-Arrays angeben, und dessen Schlüssel werden als erwarteter Satz von Schlüsseln verwendet.

ts
import { assert, test } from 'vitest';

test('assert.hasAnyDeepKeys', () => {
  assert.hasAnyDeepKeys(
    new Map([
      [{ one: 'one' }, 'valueOne'],
      [1, 2],
    ]),
    { one: 'one' }
  );
  assert.hasAnyDeepKeys(
    new Map([
      [{ one: 'one' }, 'valueOne'],
      [1, 2],
    ]),
    [{ one: 'one' }, { two: 'two' }]
  );
  assert.hasAnyDeepKeys(
    new Map([
      [{ one: 'one' }, 'valueOne'],
      [{ two: 'two' }, 'valueTwo'],
    ]),
    [{ one: 'one' }, { two: 'two' }]
  );
  assert.hasAnyDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), {
    one: 'one',
  });
  assert.hasAnyDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
    { one: 'one' },
    { three: 'three' },
  ]);
  assert.hasAnyDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
    { one: 'one' },
    { two: 'two' },
  ]);
});

hasAllDeepKeys ​

  • Typ: <T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void

Stellt sicher, dass object alle der angegebenen Schlüssel hat und keine weiteren. Da Sets und Maps Objekte als Schlüssel haben können, können Sie diese Assertion verwenden, um einen tiefen Vergleich durchzuführen. Sie können auch ein einzelnes Objekt anstelle eines Schlüssel-Arrays angeben, und dessen Schlüssel werden als erwarteter Satz von Schlüsseln verwendet.

ts
import { assert, test } from 'vitest';

test('assert.hasAllDeepKeys', () => {
  assert.hasAllDeepKeys(new Map([[{ one: 'one' }, 'valueOne']]), {
    one: 'one',
  });
  assert.hasAllDeepKeys(
    new Map([
      [{ one: 'one' }, 'valueOne'],
      [{ two: 'two' }, 'valueTwo'],
    ]),
    [{ one: 'one' }, { two: 'two' }]
  );
  assert.hasAllDeepKeys(new Set([{ one: 'one' }]), { one: 'one' });
  assert.hasAllDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
    { one: 'one' },
    { two: 'two' },
  ]);
});

containsAllDeepKeys ​

  • Typ: <T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void

Stellt sicher, dass object alle der angegebenen Schlüssel enthält. Da Sets und Maps Objekte als Schlüssel haben können, können Sie diese Assertion verwenden, um einen tiefen Vergleich durchzuführen. Sie können auch ein einzelnes Objekt anstelle eines Schlüssel-Arrays angeben, und dessen Schlüssel werden als erwarteter Satz von Schlüsseln verwendet.

ts
import { assert, test } from 'vitest';

test('assert.containsAllDeepKeys', () => {
  assert.containsAllDeepKeys(
    new Map([
      [{ one: 'one' }, 'valueOne'],
      [1, 2],
    ]),
    { one: 'one' }
  );
  assert.containsAllDeepKeys(
    new Map([
      [{ one: 'one' }, 'valueOne'],
      [{ two: 'two' }, 'valueTwo'],
    ]),
    [{ one: 'one' }, { two: 'two' }]
  );
  assert.containsAllDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), {
    one: 'one',
  });
  assert.containsAllDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
    { one: 'one' },
    { two: 'two' },
  ]);
});

doesNotHaveAnyDeepKeys ​

  • Typ: <T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void

Stellt sicher, dass object keinen der angegebenen Schlüssel hat. Da Sets und Maps Objekte als Schlüssel haben können, können Sie diese Assertion verwenden, um einen tiefen Vergleich durchzuführen. Sie können auch ein einzelnes Objekt anstelle eines Schlüssel-Arrays angeben, und dessen Schlüssel werden als erwarteter Satz von Schlüsseln verwendet.

ts
import { assert, test } from 'vitest';

test('assert.doesNotHaveAnyDeepKeys', () => {
  assert.doesNotHaveAnyDeepKeys(
    new Map([
      [{ one: 'one' }, 'valueOne'],
      [1, 2],
    ]),
    { thisDoesNot: 'existiert nicht' }
  );
  assert.doesNotHaveAnyDeepKeys(
    new Map([
      [{ one: 'one' }, 'valueOne'],
      [{ two: 'two' }, 'valueTwo'],
    ]),
    [{ twenty: 'twenty' }, { fifty: 'fifty' }]
  );
  assert.doesNotHaveAnyDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), {
    twenty: 'twenty',
  });
  assert.doesNotHaveAnyDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
    { twenty: 'twenty' },
    { fifty: 'fifty' },
  ]);
});

doesNotHaveAllDeepKeys ​

  • Typ: <T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void

Stellt sicher, dass object nicht alle der angegebenen Schlüssel hat. Da Sets und Maps Objekte als Schlüssel haben können, können Sie diese Assertion verwenden, um einen tiefen Vergleich durchzuführen. Sie können auch ein einzelnes Objekt anstelle eines Schlüssel-Arrays angeben, und dessen Schlüssel werden als erwarteter Satz von Schlüsseln verwendet.

ts
import { assert, test } from 'vitest';

test('assert.doesNotHaveAllDeepKeys', () => {
  assert.doesNotHaveAllDeepKeys(
    new Map([
      [{ one: 'one' }, 'valueOne'],
      [1, 2],
    ]),
    { thisDoesNot: 'exist' }
  );
  assert.doesNotHaveAllDeepKeys(
    new Map([
      [{ one: 'one' }, 'valueOne'],
      [{ two: 'two' }, 'valueTwo'],
    ]),
    [{ twenty: 'twenty' }, { one: 'one' }]
  );
  assert.doesNotHaveAllDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), {
    twenty: 'twenty',
  });
  assert.doesNotHaveAllDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
    { one: 'one' },
    { fifty: 'fifty' },
  ]);
});

throws ​

  • Typ:
    • (fn: () => void, errMsgMatcher?: RegExp | string, ignored?: any, message?: string) => void
    • (fn: () => void, errorLike?: ErrorConstructor | Error | null, errMsgMatcher?: RegExp | string | null, message?: string) => void
  • Alias:
    • throw
    • Throw

Wenn errorLike ein Error-Konstruktor ist, prüft dies, dass fn einen Fehler auslöst, der eine Instanz von errorLike ist. Wenn errorLike eine Error-Instanz ist, prüft dies, dass der ausgelöste Fehler dieselbe Instanz wie errorLike ist. Wenn errMsgMatcher angegeben ist, prüft dies auch, dass der ausgelöste Fehler eine Nachricht hat, die errMsgMatcher entspricht.

ts
import { assert, test } from 'vitest';

test('assert.throws', () => {
  assert.throws(fn, 'Error thrown must have this msg');
  assert.throws(fn, /Error thrown must have a msg that matches this/);
  assert.throws(fn, ReferenceError);
  assert.throws(fn, errorInstance);
  assert.throws(
    fn,
    ReferenceError,
    'Error thrown must be a ReferenceError and have this msg'
  );
  assert.throws(
    fn,
    errorInstance,
    'Error thrown must be the same errorInstance and have this msg'
  );
  assert.throws(
    fn,
    ReferenceError,
    /Error thrown must be a ReferenceError and match this/
  );
  assert.throws(
    fn,
    errorInstance,
    /Error thrown must be the same errorInstance and match this/
  );
});

doesNotThrow ​

  • Typ: (fn: () => void, errMsgMatcher?: RegExp | string, ignored?: any, message?: string) => void
  • Typ: (fn: () => void, errorLike?: ErrorConstructor | Error | null, errMsgMatcher?: RegExp | string | null, message?: string) => void

Wenn errorLike ein Error-Konstruktor ist, prüft dies, dass fn keinen Fehler auslöst, der eine Instanz von errorLike ist. Wenn errorLike eine Error-Instanz ist, prüft dies, dass der ausgelöste Fehler nicht dieselbe Instanz wie errorLike ist. Wenn errMsgMatcher angegeben ist, prüft dies auch, dass der ausgelöste Fehler keine Nachricht hat, die errMsgMatcher entspricht.

ts
import { assert, test } from 'vitest';

test('assert.doesNotThrow', () => {
  assert.doesNotThrow(fn, 'Any Error thrown must not have this message');
  assert.doesNotThrow(fn, /Any Error thrown must not match this/);
  assert.doesNotThrow(fn, Error);
  assert.doesNotThrow(fn, errorInstance);
  assert.doesNotThrow(fn, Error, 'Error must not have this message');
  assert.doesNotThrow(fn, errorInstance, 'Error must not have this message');
  assert.doesNotThrow(fn, Error, /Error must not match this/);
  assert.doesNotThrow(fn, errorInstance, /Error must not match this/);
});

operator ​

  • Typ: (val1: OperatorComparable, operator: Operator, val2: OperatorComparable, message?: string) => void

Vergleicht val1 und val2 mit dem operator.

ts
import { assert, test } from 'vitest';

test('assert.operator', () => {
  assert.operator(1, '<', 2, 'alles ist in Ordnung');
});

closeTo ​

  • Typ: (actual: number, expected: number, delta: number, message?: string) => void
  • Alias: approximately

Stellt sicher, dass der actual-Wert gleich dem expected-Wert ist, innerhalb eines +/- delta-Bereichs.

ts
import { assert, test } from 'vitest';

test('assert.closeTo', () => {
  assert.closeTo(1.5, 1, 0.5, 'Zahlen sind nah beieinander');
});

sameMembers ​

  • Typ: <T>(set1: T[], set2: T[], message?: string) => void

Stellt sicher, dass set1 und set2 die gleichen Elemente in beliebiger Reihenfolge haben. Verwendet eine strikte Gleichheitsprüfung (===).

ts
import { assert, test } from 'vitest';

test('assert.sameMembers', () => {
  assert.sameMembers([1, 2, 3], [2, 1, 3], 'gleiche Elemente');
});

notSameMembers ​

  • Typ: <T>(set1: T[], set2: T[], message?: string) => void

Stellt sicher, dass set1 und set2 nicht die gleichen Elemente in beliebiger Reihenfolge haben. Verwendet eine strikte Gleichheitsprüfung (===).

ts
import { assert, test } from 'vitest';

test('assert.notSameMembers', () => {
  assert.notSameMembers([1, 2, 3], [5, 1, 3], 'nicht gleiche Elemente');
});

sameDeepMembers ​

  • Typ: <T>(set1: T[], set2: T[], message?: string) => void

Stellt sicher, dass set1 und set2 die gleichen Elemente in beliebiger Reihenfolge haben. Verwendet eine tiefe Gleichheitsprüfung.

ts
import { assert, test } from 'vitest';

test('assert.sameDeepMembers', () => {
  assert.sameDeepMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ b: 2 }, { a: 1 }, { c: 3 }],
    'gleiche tiefe Elemente'
  );
});

notSameDeepMembers ​

  • Typ: <T>(set1: T[], set2: T[], message?: string) => void

Stellt sicher, dass set1 und set2 nicht die gleichen Elemente in beliebiger Reihenfolge haben. Verwendet eine tiefe Gleichheitsprüfung.

ts
import { assert, test } from 'vitest';

test('assert.notSameDeepMembers', () => {
  assert.notSameDeepMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ b: 2 }, { a: 1 }, { c: 3 }],
    'nicht gleiche tiefe Elemente'
  );
});

sameOrderedMembers ​

  • Typ: <T>(set1: T[], set2: T[], message?: string) => void

Stellt sicher, dass set1 und set2 die gleichen Elemente in der gleichen Reihenfolge haben. Verwendet eine strikte Gleichheitsprüfung (===).

ts
import { assert, test } from 'vitest';

test('assert.sameOrderedMembers', () => {
  assert.sameOrderedMembers([1, 2, 3], [1, 2, 3], 'gleiche geordnete Elemente');
});

notSameOrderedMembers ​

  • Typ: <T>(set1: T[], set2: T[], message?: string) => void

Stellt sicher, dass set1 und set2 nicht die gleichen Elemente in der gleichen Reihenfolge haben. Verwendet eine strikte Gleichheitsprüfung (===).

ts
import { assert, test } from 'vitest';

test('assert.notSameOrderedMembers', () => {
  assert.notSameOrderedMembers(
    [1, 2, 3],
    [2, 1, 3],
    'nicht gleiche geordnete Elemente'
  );
});

sameDeepOrderedMembers ​

  • Typ: <T>(set1: T[], set2: T[], message?: string) => void

Stellt sicher, dass set1 und set2 die gleichen Elemente in der gleichen Reihenfolge haben. Verwendet eine tiefe Gleichheitsprüfung.

ts
import { assert, test } from 'vitest';

test('assert.sameDeepOrderedMembers', () => {
  assert.sameDeepOrderedMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    'gleiche tiefe geordnete Elemente'
  );
});

notSameDeepOrderedMembers ​

  • Typ: <T>(set1: T[], set2: T[], message?: string) => void

Stellt sicher, dass set1 und set2 nicht die gleichen Elemente in der gleichen Reihenfolge haben. Verwendet eine tiefe Gleichheitsprüfung.

ts
import { assert, test } from 'vitest';

test('assert.notSameDeepOrderedMembers', () => {
  assert.notSameDeepOrderedMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ a: 1 }, { b: 2 }, { z: 5 }],
    'nicht gleiche tiefe geordnete Elemente'
  );
  assert.notSameDeepOrderedMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ b: 2 }, { a: 1 }, { c: 3 }],
    'nicht gleiche tiefe geordnete Elemente'
  );
});

includeMembers ​

  • Typ: <T>(superset: T[], subset: T[], message?: string) => void

Stellt sicher, dass das subset im superset in beliebiger Reihenfolge enthalten ist. Verwendet eine strikte Gleichheitsprüfung (===). Duplikate werden ignoriert.

ts
import { assert, test } from 'vitest';

test('assert.includeMembers', () => {
  assert.includeMembers([1, 2, 3], [2, 1, 2], 'Elemente enthalten');
});

notIncludeMembers ​

  • Typ: <T>(superset: T[], subset: T[], message?: string) => void

Stellt sicher, dass das subset nicht im superset in beliebiger Reihenfolge enthalten ist. Verwendet eine strikte Gleichheitsprüfung (===). Duplikate werden ignoriert.

ts
import { assert, test } from 'vitest';

test('assert.notIncludeMembers', () => {
  assert.notIncludeMembers([1, 2, 3], [5, 1], 'Elemente nicht enthalten');
});

includeDeepMembers ​

  • Typ: <T>(superset: T[], subset: T[], message?: string) => void

Stellt sicher, dass das subset im superset in beliebiger Reihenfolge enthalten ist. Verwendet eine tiefe Gleichheitsprüfung. Duplikate werden ignoriert.

ts
import { assert, test } from 'vitest';

test('assert.includeDeepMembers', () => {
  assert.includeDeepMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ b: 2 }, { a: 1 }, { b: 2 }],
    'tiefe Elemente enthalten'
  );
});

notIncludeDeepMembers ​

  • Typ: <T>(superset: T[], subset: T[], message?: string) => void

Stellt sicher, dass das subset nicht im superset in beliebiger Reihenfolge enthalten ist. Verwendet eine tiefe Gleichheitsprüfung. Duplikate werden ignoriert.

ts
import { assert, test } from 'vitest';

test('assert.notIncludeDeepMembers', () => {
  assert.notIncludeDeepMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ b: 2 }, { f: 5 }],
    'tiefe Elemente nicht enthalten'
  );
});

includeOrderedMembers ​

  • Typ: <T>(superset: T[], subset: T[], message?: string) => void

Stellt sicher, dass das subset im superset in der gleichen Reihenfolge, beginnend mit dem ersten Element im superset, enthalten ist. Verwendet eine strikte Gleichheitsprüfung (===).

ts
import { assert, test } from 'vitest';

test('assert.includeOrderedMembers', () => {
  assert.includeOrderedMembers([1, 2, 3], [1, 2], 'geordnete Elemente enthalten');
});

notIncludeOrderedMembers ​

  • Typ: <T>(superset: T[], subset: T[], message?: string) => void

Stellt sicher, dass das subset nicht im superset in der gleichen Reihenfolge, beginnend mit dem ersten Element im superset, enthalten ist. Verwendet eine strikte Gleichheitsprüfung (===).

ts
import { assert, test } from 'vitest';

test('assert.notIncludeOrderedMembers', () => {
  assert.notIncludeOrderedMembers(
    [1, 2, 3],
    [2, 1],
    'geordnete Elemente nicht enthalten'
  );
  assert.notIncludeOrderedMembers(
    [1, 2, 3],
    [2, 3],
    'geordnete Elemente nicht enthalten'
  );
});

includeDeepOrderedMembers ​

  • Typ: <T>(superset: T[], subset: T[], message?: string) => void

Stellt sicher, dass das subset im superset in der gleichen Reihenfolge, beginnend mit dem ersten Element im superset, enthalten ist. Verwendet eine tiefe Gleichheitsprüfung.

ts
import { assert, test } from 'vitest';

test('assert.includeDeepOrderedMembers', () => {
  assert.includeDeepOrderedMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ a: 1 }, { b: 2 }],
    'tiefe geordnete Elemente enthalten'
  );
});

notIncludeDeepOrderedMembers ​

  • Typ: <T>(superset: T[], subset: T[], message?: string) => void

Stellt sicher, dass das subset nicht im superset in der gleichen Reihenfolge, beginnend mit dem ersten Element im superset, enthalten ist. Verwendet eine tiefe Gleichheitsprüfung.

ts
import { assert, test } from 'vitest';

test('assert.notIncludeDeepOrderedMembers', () => {
  assert.notIncludeDeepOrderedMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ a: 1 }, { f: 5 }],
    'tiefe geordnete Elemente nicht enthalten'
  );
  assert.notIncludeDeepOrderedMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ b: 2 }, { a: 1 }],
    'tiefe geordnete Elemente nicht enthalten'
  );
  assert.notIncludeDeepOrderedMembers(
    [{ a: 1 }, { b: 2 }, { c: 3 }],
    [{ b: 2 }, { c: 3 }],
    'tiefe geordnete Elemente nicht enthalten'
  );
});

oneOf ​

  • Typ: <T>(inList: T, list: T[], message?: string) => void

Stellt sicher, dass der Nicht-Objekt-, Nicht-Array-Wert inList im flachen Array list vorkommt.

ts
import { assert, test } from 'vitest';

test('assert.oneOf', () => {
  assert.oneOf(1, [2, 1], 'Wert in Liste gefunden'); // Nachricht angepasst
});

changes ​

  • Typ: <T>(modifier: Function, object: T, property: string, message?: string) => void

Stellt sicher, dass ein modifier die property des object ändert.

ts
import { assert, test } from 'vitest';

test('assert.changes', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val = 22;
  }
  assert.changes(fn, obj, 'val');
});

changesBy ​

  • Typ: <T>(modifier: Function, object: T, property: string, change: number, message?: string) => void

Stellt sicher, dass ein modifier die property des object um einen change-Wert ändert.

ts
import { assert, test } from 'vitest';

test('assert.changesBy', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val += 2;
  }
  assert.changesBy(fn, obj, 'val', 2);
});

doesNotChange ​

  • Typ: <T>(modifier: Function, object: T, property: string, message?: string) => void

Stellt sicher, dass ein modifier die property des object nicht ändert.

ts
import { assert, test } from 'vitest';

test('assert.doesNotChange', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val += 2;
  }
  assert.doesNotChange(fn, obj, 'val', 2);
});

changesButNotBy ​

  • Typ: <T>(modifier: Function, object: T, property: string, change:number, message?: string) => void

Stellt sicher, dass ein modifier die property des object oder einen Rückgabewert des modifier ändert, aber nicht um einen change-Wert.

ts
import { assert, test } from 'vitest';

test('assert.changesButNotBy', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val += 10;
  }
  assert.changesButNotBy(fn, obj, 'val', 5);
});

increases ​

  • Typ: <T>(modifier: Function, object: T, property: string, message?: string) => void

Stellt sicher, dass ein modifier die numerische property eines object erhöht.

ts
import { assert, test } from 'vitest';

test('assert.increases', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val = 13;
  }
  assert.increases(fn, obj, 'val');
});

increasesBy ​

  • Typ: <T>(modifier: Function, object: T, property: string, change: number, message?: string) => void

Stellt sicher, dass ein modifier die numerische property eines object oder einen Rückgabewert des modifier um einen change-Wert erhöht.

ts
import { assert, test } from 'vitest';

test('assert.increasesBy', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val += 10;
  }
  assert.increasesBy(fn, obj, 'val', 10);
});

doesNotIncrease ​

  • Typ: <T>(modifier: Function, object: T, property: string, message?: string) => void

Stellt sicher, dass ein modifier die numerische property eines object nicht erhöht.

ts
import { assert, test } from 'vitest';

test('assert.doesNotIncrease', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val = 8;
  }
  assert.doesNotIncrease(fn, obj, 'val');
});

increasesButNotBy ​

  • Typ: <T>(modifier: Function, object: T, property: string, change: number, message?: string) => void

Stellt sicher, dass ein modifier die numerische property eines object oder einen Rückgabewert des modifier erhöht, aber nicht um einen change-Wert.

ts
import { assert, test } from 'vitest';

test('assert.increasesButNotBy', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val += 15;
  }
  assert.increasesButNotBy(fn, obj, 'val', 10);
});

decreases ​

  • Typ: <T>(modifier: Function, object: T, property: string, message?: string) => void

Stellt sicher, dass ein modifier die numerische property eines object verringert.

ts
import { assert, test } from 'vitest';

test('assert.decreases', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val = 5;
  }
  assert.decreases(fn, obj, 'val');
});

decreasesBy ​

  • Typ: <T>(modifier: Function, object: T, property: string, change: number, message?: string) => void

Stellt sicher, dass ein modifier die numerische property eines object oder einen Rückgabewert des modifier um einen change-Wert verringert.

ts
import { assert, test } from 'vitest';

test('assert.decreasesBy', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val -= 5;
  }
  assert.decreasesBy(fn, obj, 'val', 5);
});

doesNotDecrease ​

  • Typ: <T>(modifier: Function, object: T, property: string, message?: string) => void

Stellt sicher, dass ein modifier die numerische property eines object nicht verringert.

ts
import { assert, test } from 'vitest';

test('assert.doesNotDecrease', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val = 15;
  }
  assert.doesNotDecrease(fn, obj, 'val');
});

doesNotDecreaseBy ​

  • Typ: <T>(modifier: Function, object: T, property: string, change: number, message?: string) => void

Stellt sicher, dass ein modifier die numerische property eines object oder einen Rückgabewert des modifier nicht um einen change-Wert verringert.

ts
import { assert, test } from 'vitest';

test('assert.doesNotDecreaseBy', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val = 5;
  }
  assert.doesNotDecreaseBy(fn, obj, 'val', 1);
});

decreasesButNotBy ​

  • Typ: <T>(modifier: Function, object: T, property: string, change: number, message?: string) => void

Stellt sicher, dass ein modifier die numerische property eines object oder einen Rückgabewert des modifier verringert, aber nicht um einen change-Wert.

ts
import { assert, test } from 'vitest';

test('assert.decreasesButNotBy', () => {
  const obj = { val: 10 };
  function fn() {
    obj.val = 5;
  }
  assert.decreasesButNotBy(fn, obj, 'val', 1);
});

ifError ​

  • Typ: <T>(object: T, message?: string) => void

Stellt sicher, ob object kein falsy Wert ist, und wirft einen Fehler, wenn es ein truthy Wert ist. Dies wurde hinzugefügt, um Chai als direkten Ersatz für die Node-Assert-Klasse zu ermöglichen.

ts
import { assert, test } from 'vitest';

test('assert.ifError', () => {
  const err = new Error('I am a custom error');
  assert.ifError(err); // Rethrows err!
});

isExtensible ​

  • Typ: <T>(object: T, message?: string) => void
  • Alias: extensible

Stellt sicher, dass object erweiterbar ist (neue Eigenschaften können hinzugefügt werden).

ts
import { assert, test } from 'vitest';

test('assert.isExtensible', () => {
  assert.isExtensible({});
});

isNotExtensible ​

  • Typ: <T>(object: T, message?: string) => void
  • Alias: notExtensible

Stellt sicher, dass object nicht erweiterbar ist (neue Eigenschaften können nicht hinzugefügt werden).

ts
import { assert, test } from 'vitest';

test('assert.isNotExtensible', () => {
  const nonExtensibleObject = Object.preventExtensions({});
  const sealedObject = Object.seal({});
  const frozenObject = Object.freeze({});

  assert.isNotExtensible(nonExtensibleObject);
  assert.isNotExtensible(sealedObject);
  assert.isNotExtensible(frozenObject);
});

isSealed ​

  • Typ: <T>(object: T, message?: string) => void
  • Alias: sealed

Stellt sicher, dass object versiegelt ist (es können keine neuen Eigenschaften hinzugefügt und bestehende Eigenschaften nicht entfernt werden).

ts
import { assert, test } from 'vitest';

test('assert.isSealed', () => {
  const sealedObject = Object.seal({});
  const frozenObject = Object.freeze({});

  assert.isSealed(sealedObject);
  assert.isSealed(frozenObject);
});

isNotSealed ​

  • Typ: <T>(object: T, message?: string) => void
  • Alias: notSealed

Stellt sicher, dass object nicht versiegelt ist (es können neue Eigenschaften hinzugefügt und bestehende Eigenschaften entfernt werden).

ts
import { assert, test } from 'vitest';

test('assert.isNotSealed', () => {
  assert.isNotSealed({});
});

isFrozen ​

  • Typ: <T>(object: T, message?: string) => void
  • Alias: frozen

Stellt sicher, dass object eingefroren ist (es können keine neuen Eigenschaften hinzugefügt und bestehende Eigenschaften nicht geändert werden).

ts
import { assert, test } from 'vitest';

test('assert.isFrozen', () => {
  const frozenObject = Object.freeze({});
  assert.frozen(frozenObject);
});

isNotFrozen ​

  • Typ: <T>(object: T, message?: string) => void
  • Alias: notFrozen

Stellt sicher, dass object nicht eingefroren ist (es können neue Eigenschaften hinzugefügt und bestehende Eigenschaften geändert werden).

ts
import { assert, test } from 'vitest';

test('assert.isNotFrozen', () => {
  assert.isNotFrozen({});
});

isEmpty ​

  • Typ: <T>(target: T, message?: string) => void
  • Alias: empty

Stellt sicher, dass das target keine Werte enthält. Bei Arrays und Strings wird die length-Eigenschaft überprüft. Bei Map- und Set-Instanzen wird die size-Eigenschaft überprüft. Bei Nicht-Funktionsobjekten wird die Anzahl der eigenen aufzählbaren String-Schlüssel ermittelt.

ts
import { assert, test } from 'vitest';

test('assert.isEmpty', () => {
  assert.isEmpty([]);
  assert.isEmpty('');
  assert.isEmpty(new Map());
  assert.isEmpty({});
});

isNotEmpty ​

  • Typ: <T>(object: T, message?: string) => void
  • Alias: notEmpty

Stellt sicher, dass das target Werte enthält. Bei Arrays und Strings wird die length-Eigenschaft überprüft. Bei Map- und Set-Instanzen wird die size-Eigenschaft überprüft. Bei Nicht-Funktionsobjekten wird die Anzahl der eigenen aufzählbaren String-Schlüssel ermittelt.

ts
import { assert, test } from 'vitest';

test('assert.isNotEmpty', () => {
  assert.isNotEmpty([1, 2]);
  assert.isNotEmpty('34');
  assert.isNotEmpty(new Set([5, 6]));
  assert.isNotEmpty({ key: 7 });
});
Pager
Vorherige SeiteexpectTypeOf
Nächste SeiteassertType

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/api/assert

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team