Skip to content
Vitest 0
Main Navigation KılavuzAPIYapılandırmaİleri
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

Kılavuz

Neden Vitest

Başlangıç

Özellikler

Çalışma Alanı

Komut Satırı Arayüzü

Test Filtreleme

Kapsam

Anlık Görüntü (Snapshot) Testleri

Sahtecilik (Mocking)

Tür Testleri

Vitest Arayüzü

Tarayıcı Modu (deneysel)

Kaynak İçi Test

Test Bağlamı

Test Ortamı

Eşleştiricileri Genişletme

IDE Tümleştirmeleri

Hata Ayıklama

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

Geçiş Rehberi

Yaygın Hatalar

API

Test API Başvurusu

Mock Fonksiyonlar

Vi

expect

expectTypeOf

assertType

Yapılandırma

Vitest'i Yapılandırma

Bu sayfada

Tür Testleri ​

Vitest, expectTypeOf veya assertType sözdizimlerini kullanarak türleriniz için testler yazmanızı sağlar. Varsayılan olarak *.test-d.ts dosyaları içindeki tüm testler tür testleri olarak kabul edilir, ancak bunu typecheck.include yapılandırma seçeneğiyle değiştirebilirsiniz.

Vitest, yapılandırmanıza bağlı olarak tsc veya vue-tsc'yi çağırır ve sonuçları işler. Vitest, hata bulursa kaynak kodunuzdaki tür hatalarını da yazdırır. Bunu devre dışı bırakmak için typecheck.ignoreSourceErrors yapılandırma seçeneğini kullanabilirsiniz.

Vitest'in bu dosyaları çalıştırmadığını veya derlemediğini unutmayın; bunlar yalnızca derleyici tarafından statik olarak analiz edilir ve bu nedenle dinamik ifadeler kullanamazsınız. Bu nedenle, dinamik test adları ve test.each, test.runIf, test.skipIf, test.concurrent API'lerini kullanamazsınız. Ancak test, describe, .only, .skip ve .todo gibi diğer API'leri kullanabilirsiniz.

--allowOnly ve -t gibi CLI bayrakları da tür kontrolü için desteklenmektedir.

ts
import { assertType, expectTypeOf } from 'vitest';
import { mount } from './mount.js';

test('türlerimin doğru çalıştığını', () => {
  expectTypeOf(mount).toBeFunction();
  expectTypeOf(mount).parameter(0).toMatchTypeOf<{ name: string }>();

  // @ts-expect-error name bir string olmalı
  assertType(mount({ name: 42 }));
});

Bir test dosyası içinde tetiklenen herhangi bir tür hatası, test hatası olarak kabul edilir. Bu nedenle, projenizin türlerini test etmek için istediğiniz tür manipülasyonunu kullanabilirsiniz.

API bölümünde olası eşleştiricilerin bir listesini görebilirsiniz.

Hataları Okuma ​

expectTypeOf API'sini kullanıyorsanız, okuması zor veya beklenmedik hatalar fark edebilirsiniz:

ts
expectTypeOf(1).toEqualTypeOf<string>();
//             ^^^^^^^^^^^^^^^^^^^^^^
// index-c3943160.d.ts(90, 20): Arguments for the rest parameter 'MISMATCH' were not provided.

Bunun nedeni expect-type'ın tür hatalarını işleme şeklidir.

Ne yazık ki, TypeScript değişiklik yapılmadan tür meta verileri sağlamaz. Bu nedenle, şu anda yararlı hata mesajları sağlayamıyoruz. Ancak, bunu düzeltmek için TypeScript projesinde çalışmalar devam etmektedir. Daha iyi hata mesajları istiyorsanız, lütfen TypeScript ekibinden söz konusu PR'yi incelemelerini isteyin.

expectTypeOf API'siyle çalışmakta ve hataları anlamakta zorlanıyorsanız, her zaman daha basit olan assertType API'sini kullanabilirsiniz:

ts
const answer = 42;

assertType<number>(answer);
// @ts-expect-error answer bir string değil
assertType<string>(answer);

TIP

@ts-expect-error sözdizimini kullanırken, yazım hatası yapmadığınızdan emin olmak isteyebilirsiniz. Bunu, tür dosyalarınızı test.include yapılandırma seçeneğine dahil ederek yapabilirsiniz, böylece Vitest bu testleri gerçekten çalıştırır ve ReferenceError ile başarısız olur.

Bu, bir hata beklediği için bu test geçecektir, ancak "answer" kelimesinde bir yazım hatası var, bu yüzden hatalı bir pozitif sonuç verir:

ts
// @ts-expect-error answer bir string değil
assertType<string>(answr); //

Tür Kontrolünü Çalıştırma ​

package.json dosyanızdaki scripts bölümüne bu komutu ekleyin:

json
{
  "scripts": {
    "typecheck": "vitest typecheck"
  }
}

Şimdi tür kontrolünü başlatabilirsiniz:

sh
# npm
npm run typecheck

# yarn
yarn typecheck

# pnpm
pnpm run typecheck

Vitest, yapılandırmanıza bağlı olarak tsc --noEmit veya vue-tsc --noEmit kullanır, bu nedenle bu komut dosyalarını işlem hattınızdan kaldırabilirsiniz.

Pager
Önceki sayfaSahtecilik (Mocking)
Sonraki sayfaVitest Arayüzü

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

Copyright (c) 2021-Present Vitest Team

https://v0.vitest.dev/guide/testing-types

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

Copyright (c) 2021-Present Vitest Team