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

Geçiş Rehberi ​

Jest'ten Geçiş ​

Vitest, Jest'ten geçişi kolaylaştırmak amacıyla Jest ile uyumlu bir API ile tasarlanmıştır. Bu çabalara rağmen, aşağıdaki farklılıklarla karşılaşabilirsiniz:

Varsayılan Olarak Global Değişkenler ​

Jest, globals API'lerini varsayılan olarak etkinleştirmiştir. Vitest bunu varsayılan olarak etkinleştirmez. The globals yapılandırma ayarı aracılığıyla global değişkenleri etkinleştirebilir veya bunun yerine vitest modülünden içe aktarmaları kullanmak için kodunuzu güncelleyebilirsiniz.

Global değişkenleri devre dışı bırakmaya karar verirseniz, testing-library gibi yaygın kütüphanelerin otomatik DOM temizleme işlemini gerçekleştirmediğini unutmayın.

Modül Sahteleri (Mocks) ​

Jest'te bir modülü sahtelerken, fabrika fonksiyonunun dönüş değeri varsayılan dışa aktarımdır. Vitest'te, fabrika fonksiyonu her dışa aktarımı açıkça tanımlayan bir nesne döndürmelidir. Örneğin, aşağıdaki jest.mock şu şekilde güncellenmelidir:

diff
- jest.mock('./some-path', () => 'hello')
+ vi.mock('./some-path', () => ({
+   default: 'hello',
+ })

Daha fazla ayrıntı için lütfen vi.mock api bölümüne bakın.

Otomatik Sahteleme Davranışı ​

Jest'ten farklı olarak, <root>/__mocks__ içindeki mock'lanan modüller, vi.mock() çağrılmadığı sürece yüklenmez. Jest'te olduğu gibi, her testte sahtelenmeleri gerekiyorsa, bunları setupFiles içinde sahteleyebilirsiniz.

Taklit Edilen Bir Paketin Orijinalini İçe Aktarma ​

Bir paketi yalnızca kısmen sahteliyorsanız, daha önce Jest'in requireActual işlevini kullanmış olabilirsiniz. Vitest'te, bu çağrıları vi.importActual ile değiştirmelisiniz.

diff
- const { cloneDeep } = jest.requireActual('lodash/cloneDeep')
+ const { cloneDeep } = await vi.importActual('lodash/cloneDeep')

Ortam Değişkenleri ​

Tıpkı Jest gibi, Vitest de daha önce ayarlanmamışsa NODE_ENV'yi test olarak ayarlar. Vitest ayrıca JEST_WORKER_ID için VITEST_POOL_ID (her zaman maxThreads'den küçük veya eşit) adlı bir karşılığa sahiptir, bu nedenle buna güveniyorsanız, yeniden adlandırmayı unutmayın. Vitest ayrıca, çalışan bir worker'ın benzersiz kimliğini temsil eden VITEST_WORKER_ID değişkenini de sunar. Bu değer, maxThreads ayarından bağımsızdır ve her oluşturulan worker için artar.

Ortam değişkenlerini değiştirmek istiyorsanız, Jest'te replaceProperty API kullanırsınız, Vitest'te ise vi.stubEnv kullanabilirsiniz.

Tamamlandı Geri Çağrısı (Callback) ​

Vitest v0.10.0 sürümünden itibaren, test tanımlamalarında geri çağrı (callback) stilinin kullanımı önerilmemektedir. Bunları async/await işlevlerini kullanmak veya geri arama stilini taklit etmek için Promise kullanmak üzere yeniden yazabilirsiniz.

diff
- it('should work', (done) => {
+ it('should work', () => new Promise(done => {
    // ...
    done()
- })
+ }))

Kancalar ​

beforeAll/beforeEach kancaları Vitest'te teardown işlevi döndürebilir. Bu nedenle, undefined veya null dışında bir değer döndürüyorlarsa, hook tanımlarınızı yeniden düzenlemeniz gerekebilir:

diff
- beforeEach(() => setActivePinia(createTestingPinia()))
+ beforeEach(() => { setActivePinia(createTestingPinia()) })

Tipler ​

Vitest, Vi ad alanında çok fazla tip tanımlamaz. Bu ad alanı, temel olarak eşleştiricilerle uyumluluk içindir. Bu nedenle, tipleri Vi ad alanına güvenmek yerine doğrudan vitest modülünden import etmeniz gerekebilir:

diff
- let fn: jest.Mock<string, [string]>
+ import type { Mock } from 'vitest'
+ let fn: Mock<[string], string>

Ayrıca, Vitest'te örnekte görüldüğü gibi, Returns yerine ilk argüman olarak Args tipi vardır.

Zamanlayıcılar ​

Vitest, Jest'in eski zamanlayıcılarını desteklememektedir.

Vue Anlık Görüntüleri ​

Bu, Jest'e özgü bir özellik değildir; ancak daha önce vue-cli ön ayarıyla Jest kullanıyorsanız, jest-serializer-vue paketini yüklemeniz ve setupFiles içinde kullanmanız gerekecektir:

vite.config.js

js
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    setupFiles: ['./tests/unit/setup.js'],
  },
});

tests/unit/setup.js

js
import vueSnapshotSerializer from 'jest-serializer-vue';

expect.addSnapshotSerializer(vueSnapshotSerializer);

Aksi takdirde, anlık görüntülerinizde çok sayıda ters eğik çizgi ile işaretlenmiş (\) " karakterleri görünecektir.

Pager
Önceki sayfaDiğer Test Çalıştırıcılarıyla Karşılaştırmalar
Sonraki sayfaYaygın Hatalar

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

Copyright (c) 2024 Mithril Contributors

https://v0.vitest.dev/guide/migration

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

Copyright (c) 2024 Mithril Contributors