Skip to content
Vitest 3
Main Navigation Kılavuz & APIYapılandırmaTarayıcı ModuGelişmiş API
3.2.0
2.1.9
1.6.1
0.34.6

Türkçe

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

Türkçe

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

Görünüm

Sidebar Navigation

Giriş

Neden Vitest

Başlarken

Özellikler

Vitest'i Yapılandırma

API

Test API Referansları

Mock Fonksiyonlar

Vi

expect

expectTypeOf

assert

assertType

Kılavuz

Komut Satırı Arayüzü

Test Filtreleme

Test Projeleri

Raporlayıcılar

Kapsam

Anlık Görüntüler

Mocking

Paralellik

Tür Testleri

Vitest UI

Kaynak İçi Test

Test Ortamı

Test Açıklamaları

Test Ortamı

Eşleştiricileri Genişletme

IDE Entegrasyonları

Hata Ayıklama

Sık Karşılaşılan Hatalar

Geçiş Kılavuzu

Vitest 3.0'a Geçiş

Jest'ten Geçiş

Performans

Test Performansını Profillendirme

Performansı İyileştirme

Tarayıcı Modu

Gelişmiş API

Diğer Test Çalıştırıcılarla Karşılaştırmalar

Bu sayfada

Eşleştiricileri Genişletme ​

Vitest hem Chai hem de Jest ile uyumlu olduğundan, tercih ettiğiniz chai.use API'sini veya expect.extend'i kullanabilirsiniz.

Bu kılavuz, eşleştiricileri expect.extend ile genişletmeyi açıklayacaktır. Chai'nin API'siyle ilgileniyorsanız, kılavuzlarına göz atın.

Varsayılan eşleştiricileri genişletmek için, eşleştiricilerinizi içeren bir nesne ile expect.extend'i çağırın.

ts
expect.extend({
  toBeFoo(received, expected) {
    const { isNot } = this;
    return {
      // "pass" değerinizi isNot'a göre değiştirmeyin. Vitest bunu sizin için yapar
      pass: received === 'foo',
      message: () => `${received} is${isNot ? ' not' : ''} foo`,
    };
  },
});

TypeScript kullanıyorsanız, varsayılan Assertion arayüzünü bir ortam bildirim dosyasında (örn: vitest.d.ts) aşağıdaki kodla genişletebilirsiniz:

ts
import 'vitest';

interface CustomMatchers<R = unknown> {
  toBeFoo: () => R;
}

declare module 'vitest' {
  interface Matchers<T = any> extends CustomMatchers<T> {}
}
ts
import 'vitest';

interface CustomMatchers<R = unknown> {
  toBeFoo: () => R;
}

declare module 'vitest' {
  interface Assertion<T = any> extends CustomMatchers<T> {}
  interface AsymmetricMatchersContaining extends CustomMatchers {}
}

TIP

Vitest 3.2'den itibaren, expect.extend, expect().* ve expect.* yöntemlerinde aynı anda tür güvenli onaylamalara sahip olmak için Matchers arayüzünü genişletebilirsiniz. Daha önce, her biri için ayrı arayüzler tanımlamanız gerekirdi.

WARNING

Ortam bildirim dosyasını tsconfig.json dosyanıza eklemeyi unutmayın.

Bir eşleştiricinin dönüş değeri aşağıdaki arayüzle uyumlu olmalıdır:

ts
interface ExpectationResult {
  pass: boolean;
  message: () => string;
  // Bunları sağlarsanız, eşleştirici başarısız olduğunda otomatik olarak bir fark içinde görünecekler,
  // bu nedenle farkı kendiniz yazdırmanıza gerek yoktur
  actual?: unknown;
  expected?: unknown;
}

WARNING

Asenkron bir eşleştirici oluşturursanız, testin kendisinde sonucu await etmeyi unutmayın (await expect('foo').toBeFoo()):

ts
expect.extend({
  async toBeAsyncAssertion() {
    // ...
  },
});

await expect().toBeAsyncAssertion();

Bir eşleştiricinin fonksiyonundaki ilk argüman alınan değerdir (expect(received) içindeki). Diğerleri doğrudan eşleştiriciye iletilen argümanlardır.

Eşleştirici fonksiyonu, aşağıdaki özellikleri içeren this bağlamına erişebilir:

isNot ​

Eşleştirici not üzerinde çağrıldıysa (expect(received).not.toBeFoo()) true döndürür.

promise ​

Eşleştirici resolved veya rejected üzerinde çağrıldıysa, bu değer değiştiricinin adını içerecektir. Aksi takdirde, boş bir dize olacaktır.

equals ​

Bu, iki değeri karşılaştırmanıza olanak tanıyan bir yardımcı fonksiyondur. Değerler eşitse true, aksi takdirde false döndürür. Bu fonksiyon neredeyse her eşleştirici için dahili olarak kullanılır. Varsayılan olarak asimetrik eşleştiricilere sahip nesneleri destekler.

utils ​

Bu, mesajları görüntülemek için kullanabileceğiniz bir dizi yardımcı fonksiyon içerir.

this bağlamı ayrıca mevcut test hakkında bilgi içerir. Bunu expect.getState() çağırarak da alabilirsiniz. En kullanışlı özellikler şunlardır:

currentTestName ​

Mevcut testin tam adı (describe bloğu dahil).

testPath ​

Mevcut testin dosya yolu.

Pager
Önceki sayfaTest Ortamı
Sonraki sayfaIDE Entegrasyonları

MIT Lisansı altında yayınlanmıştır.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/extending-matchers

MIT Lisansı altında yayınlanmıştır.

Copyright (c) 2021-Present Vitest Team