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
translation

Questo è un post tradotto da IA.

제이의 블로그

Mocking Prisma Client per test unitari in NestJS

Seleziona la lingua

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

Testo riassunto dall'intelligenza artificiale durumis

  • È importante rimuovere le dipendenze esterne per i test unitari.
  • È possibile creare un mock di Prisma Client di Prisma ORM in modo semplice utilizzando il pacchetto jest-mock-extended.
  • La creazione di un mock ha semplificato la scrittura dei test unitari.

In linea di principio, i test unitari delle applicazioni dovrebbero essere eseguiti in modo isolato, quindi è consigliabile rimuovere le dipendenze esterne, come I/O di rete o database, che potrebbero influenzare i risultati del test.

In questo progetto, poiché ho utilizzato Prisma ORM per il mio progetto di gioco, ho deciso di scrivere questo articolo per registrare come simulare in modo semplice Prisma Client per i test unitari.


Installazione del pacchetto jest-mock-extended

Installa il pacchetto consigliato nella documentazione ufficiale di Prisma con il comando precedente.


Simulazione di Prisma Client

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);


 Esempio di codice di test unitario

  describe('create', () => {
    it('Se la creazione dell'utente ha successo, dovrebbe restituire le informazioni dell'utente.', async () => {
        // Arrange
        const newUser = {
            email: 'test@test.com',
            password: 'test1234',
        };
        
          prismaMock.user.create.mockResolvedValue({
            id: 1,
            email: 'test@test.com',
            password: 'test1234',
          });

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

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

Dopo la simulazione, il supporto del tipo è disponibile, il che ha reso la scrittura di test unitari molto più conveniente.

Jay
제이의 블로그
1인분이 목표인 초보 개발자
Jay
Modellazione di dati relazionali La modellazione di dati relazionali è il processo di suddivisione delle informazioni del mondo reale in tabelle e dati, e comprende le fasi di analisi dei requisiti, modellazione concettuale dei dati, modellazione logica dei dati e modellazione fisica dei

8 aprile 2024

Modellazione dati fisica La modellazione dati fisica è il processo di progettazione delle tabelle di un database relazionale per renderle effettivamente utilizzabili, mirando all'ottimizzazione delle prestazioni attraverso l'efficienza dello spazio di archiviazione, il partiziona

9 aprile 2024

Modellazione concettuale dei dati del progetto Kanban Board 1 Ho implementato di nuovo il progetto Kanban Board, che era un compito di stage per backend Wanted, per esercitarmi nella modellazione dei dati relazionali e ho eseguito la modellazione concettuale dei dati. Attraverso il processo di separazione delle enti

9 aprile 2024

Cosa testare nello sviluppo di app per una persona? Scopri come stabilire la priorità dei test durante lo sviluppo di app e creare una strategia di test efficiente. L'autore suggerisce di dare la priorità ai test umani, ai test di integrazione, ai test unitari e ai test di accettazione/widget in quest'ordi
Alien Story
Alien Story
Alien Story
Alien Story
Alien Story

16 maggio 2024

[Effettivi Java] Elemento 5. Non dichiarare risorse, utilizzare l'iniezione di dipendenze Se una classe dipende da risorse esterne, è meglio non utilizzare classi di utilità statiche o singleton. L'iniezione di dipendenze può migliorare la flessibilità, la riusabilità e la facilità di test della classe, e l'utilizzo del pattern di metodo di fa
제이온
제이온
제이온
제이온

28 aprile 2024

[Effective Java] Elemento 3. Garantisci il singleton con un costruttore privato o un tipo di enumerazione Presenta tre modi per implementare il modello singleton in Java (membro statico pubblico, metodo di fabbrica statico, tipo di enumerazione) e spiega i pro e i contro di ciascun metodo e le precauzioni da prendere durante la serializzazione. Si consiglia d
제이온
제이온
제이온
제이온

27 aprile 2024

Test del testo Nessuna anteprima di durumis AI.
안민수
안민수
안민수
안민수

29 aprile 2024

Creare un'interfaccia a riga di comando accattivante con Rust Questo articolo spiega come implementare un'applicazione CLI con Rust. Utilizzando le librerie clap e ratatui, creeremo un programma CLI con funzionalità di accesso e disconnessione. Introduciamo tutti gli aspetti dello sviluppo CLI basato su Rust, inclus
곽경직
곽경직
곽경직
곽경직
곽경직

13 marzo 2024

[Next.js] Iniezione dell'ambiente di runtime Scopri come impostare le variabili ambientali dopo la compilazione in Next.js. Viene illustrato come installare cross-env e modificare gli script in modo che gli utenti di Windows possano seguirli facilmente. Puoi utilizzarlo in modo efficace per imposta
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

20 marzo 2024