Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Çıkış Yap

translation

Bu, AI tarafından çevrilen bir gönderidir.

제이의 블로그

Prisma Client'ı NestJS'de Birim Testleri İçin Taklit Etme

  • tr Writing language: Korece
  • tr Referans Ülke: tr Tüm ülkeler country-flag

Dil Seç

  • Türkçe
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Text summarized by durumis AI

  • Birim testleri için dış bağımlılıkları kaldırmak önemlidir.
  • Prisma ORM'nin Prisma Client'ını jest-mock-extended paketini kullanarak kolayca taklit edebilirsiniz.
  • Taklit ettikten sonra birim testlerini yazmak daha kolay hale geldi.

Uygulama birim testlerinin izole bir şekilde gerçekleştirilmesi ilkesidir, bu nedenle test sonuçlarını etkileyebilecek ağ G/Ç'si veya veritabanı gibi harici bağımlılıklar kaldırılmalıdır.

Bu sefer oyuncak projemde Prisma ORM kullanmaya karar verdim, bu nedenle birim testleri için Prisma Client'ı basitçe taklit etme yöntemini bulup kaydetmek için bunu yazıyorum.


jest-mock-extended paketini yükleme

Prisma resmi belgesinde de önerilen paketi yukarıdaki komutla kurun.


Prisma Client taklidi

describe('UserService', () => {
let service: UserService;
let prismaMock: DeepMockProxy;

beforeEach(async () => {
    prismaMock = mockDeep();

    const module: TestingModule = await Test.createTestingModule({
      providers: [
        UserService,
        {
              provide: PrismaService,
              useValue: prismaMock,
        },
      ],
    }).compile();

    service = module.get(UserService);


 Birim test örnek kodu

  describe('create', () => {
    it('Kullanıcı oluşturma başarılı olursa kullanıcı bilgilerini döndürmelidir.', async () => {
        // Düzenle
        const newUser = {
            email: 'test@test.com',
            password: 'test1234',
        };
        
          prismaMock.user.create.mockResolvedValue({
            id: 1,
            email: 'test@test.com',
            password: 'test1234',
          });

          // Eylem
          const result = await service.create(newUser);

          // Doğrula
          expect(result).toEqual({
            id: 1,
            email: 'test@test.com',
            password: 'test1234',
          });
    });

Taklit ettikten sonra, tür desteği de sağlandığı için birim testi yazmak oldukça kolaydı.

Jay
제이의 블로그
1인분이 목표인 초보 개발자
Jay
Kanban Kurulu Projesi 1 Kavramsal Veri Modellemesi Wanted Backend Stajyerlik Görevi olan Kanban Kurulu Projesini, ilişkisel veri modelleme alıştırması amacıyla yeniden uygulayarak kavramsal veri modellemesi gerçekleştirdim. Varlık ayrımı, tanımlayıcı tanımlama, ilişki belirleme gibi adımlar geçerek modell

9 Nisan 2024

İlişkisel Veri Modelleme İlişkisel veri modelleme, gerçek dünyadaki bilgileri tablolar ve verilere ayırma sürecidir ve gereksinim analizi, kavramsal veri modelleme, mantıksal veri modelleme ve fiziksel veri modelleme adımlarını içerir. Karga ayağı gösterimini kullanan ERD aracılı

8 Nisan 2024

Fiziksel Veri Modelleme Fiziksel veri modelleme, ilişkisel veritabanlarındaki tabloları gerçek kullanıma hazır hale getirmek için tasarlama işlemidir. Depolama alanı verimliliği, veri bölümleme, indeks tasarımı gibi unsurları içeren bu süreç, performans optimizasyonunu hedefler.

9 Nisan 2024

Tek Kişilik Uygulama Geliştirmede Hangi Testler Yapılmalı? Uygulama geliştirmede test önceliklerini belirlemek ve etkili bir test stratejisi oluşturmak için ipuçları edinin. Yazar, öncelik sırasına göre insan testini, entegrasyon testini, birim testini, kabul/widget testini sıralayarak zaman verimliliğini vurgulu
Alien Story
Alien Story
Alien Story
Alien Story
Alien Story

16 Mayıs 2024

[Efektif Java] Öğe 3. Özel Oluşturucular veya Sayım Türüyle Tekil Olmayı Garanti Etme Java'da tekil kalıbını uygulamanın üç yolunu (public static üye, statik fabrika yöntemi, sayım türü) tanıtır ve her yöntemin avantajlarını ve dezavantajlarını ve seri hale getirme sırasında dikkat edilmesi gereken noktaları açıklar. Yansıma saldırılarına
제이온
제이온
제이온
제이온

27 Nisan 2024

Üretkenliği Artırmak İçin Otomasyon Programı Geliştiriyoruz. Üretkenliği artırmak için otomasyon programı geliştiren durumis. İş, hobi, günlük yaşam gibi çeşitli alanlardaki işleri otomatikleştirerek kendi robot asistanınızı oluşturabilirsiniz. Web sitesi çalıştırma, belge işleme, e-posta, iş sistemleri gibi otomas
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

22 Mart 2024

Yazı Testi Durumis AI'nin önizlemesi yok.
안민수
안민수
안민수
안민수

29 Nisan 2024

Rust'ın Eşzamanlılık Hatalarını Önleme Yolu Rust, eşzamanlı programlamanın zorluklarını aşmak için güçlü bir dildir. Tip sistemi ve sahiplik modeli sayesinde, iş parçacıkları arasında veri aktarımı ve paylaşımı güvenlidir. Mutex, Channel, Atomic gibi iç değişkenlik kalıpları ile paylaşılan değişken
곽경직
곽경직
곽경직
곽경직
곽경직

28 Mart 2024

Rust ile Şık Bir CLI Oluşturma Rust ile CLI uygulamaları oluşturma yöntemini açıklar. clap ve ratatui kütüphanelerini kullanarak giriş yapma, çıkış yapma işlevlerine sahip bir CLI programı oluşturur. Komut seçenekleri tanımlama, alt komutlar ekleme, etkileşimli TUI arayüzü oluşturma gi
곽경직
곽경직
곽경직
곽경직
곽경직

13 Mart 2024