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

Dit is een door AI vertaalde post.

제이의 블로그

Prisma Client-mocken voor unit-tests in NestJS

Selecteer taal

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

Samengevat door durumis AI

  • Het is belangrijk om externe afhankelijkheden te verwijderen voor unit-tests.
  • U kunt Prisma Client van Prisma ORM eenvoudig mocken met behulp van het pakket jest-mock-extended.
  • Het schrijven van unit-tests is na het mocken gemakkelijker geworden.

Het is een principe om applicatietests uit te voeren in isolatie. Daarom is het het beste om externe afhankelijkheden zoals netwerk-I/O en databases te verwijderen, omdat deze de testresultaten kunnen beïnvloeden.

Ik ben van plan om Prisma ORM te gebruiken voor mijn speelgoedproject. Daarom wil ik deze post schrijven om vast te leggen hoe ik Prisma Client eenvoudig kan mocken voor unit-tests.


Installeer het jest-mock-extended pakket

Het pakket dat wordt aanbevolen in de officiële Prisma-documentatie kan worden geïnstalleerd met de bovenstaande opdracht.


Prisma Client mocken

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


 Voorbeeldcode voor unit-tests

  describe('create', () => {
    it('Moet de gebruikersinformatie retourneren als het succesvol is om een gebruiker te maken.', 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',
          });
    });

Na het mocken wordt type-ondersteuning ook geleverd, wat unit-tests veel gemakkelijker maakt.

Jay
제이의 블로그
1인분이 목표인 초보 개발자
Jay
Relationele datamodellering Relationele datamodellering is het proces van het verdelen van informatie uit de echte wereld in tabellen en data. Dit omvat de volgende stappen: vereistenanalyse, conceptueel datamodellering, logisch datamodellering en fysiek datamodellering. Met behulp

8 april 2024

Conceptueel datamodel voor Kanban-bordproject 1 Ik heb het Kanban-bordproject opnieuw geïmplementeerd, wat een taak was voor het Wanted backend-stageprogramma, om conceptueel datamodel te doen als oefening voor relationele datamodellering. Door het proces van entiteiten scheiden, definiëren van identif

9 april 2024

Fysieke datamodelering Fysieke datamodelering is het proces van het ontwerpen van tabellen in een relationele database voor daadwerkelijk gebruik. Dit omvat het optimaliseren van de prestaties door middel van opslagruimte-efficiëntie, gegevensverdeling en indexontwerp. Trage qu

9 april 2024

Wat voor tests moet je uitvoeren bij het ontwikkelen van een app voor één persoon? Ontdek hoe je prioriteit kunt stellen aan tests tijdens app-ontwikkeling en een efficiënte teststrategie kunt opstellen. De auteur geeft prioriteit aan mensen-testen, integratietesten, eenheidstesten en acceptatie/widget-testen, waarbij de tijdsefficiënti
Alien Story
Alien Story
Alien Story
Alien Story
Alien Story

16 mei 2024

[Effectieve Java] Item 5. Gebruik afhankelijke objectinjectie in plaats van resources expliciet te noemen Wanneer een klasse afhankelijk is van externe resources, is het gebruik van singletons en statische utility-klassen af te raden. Door afhankelijke objectinjectie te gebruiken, kunt u de flexibiliteit, herbruikbaarheid en testbaarheid van de klasse verbete
제이온
제이온
제이온
제이온

28 april 2024

Teksttest Er is geen voorvertoning van durumis AI.
안민수
안민수
안민수
안민수

29 april 2024

Hoe Rust concurrency-fouten voorkomt Rust is een krachtige taal die de uitdagingen van concurrency-programmeren aanpakt. Door het type-systeem en eigendomsmodel is het veilig om gegevens tussen threads te verzenden en te delen. Met behulp van interne veranderlijkheidspatronen zoals Mutex, Ch
곽경직
곽경직
곽경직
곽경직
곽경직

28 maart 2024

[Effectieve Java] Item 4. Gebruik een private constructor om instantiatie te voorkomen Voor utility-klassen die alleen statische methoden en velden bevatten, is het een goed idee om de toegangsmodifier van de constructor op 'private' te zetten om instantiatie te voorkomen. Dit voorkomt dat gebruikers de constructor verwarren met een automat
제이온
제이온
제이온
제이온

28 april 2024

[Next.js] Runtime env injectie Ontdek hoe je omgevingsvariabelen in Next.js kunt instellen na de buildtijd. We laten je zien hoe je cross-env kunt installeren en je scripts kunt aanpassen, zodat zelfs Windows-gebruikers het gemakkelijk kunnen volgen. Het is handig voor het instellen v
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

20 maart 2024