Skip to content

Integração com Frameworks de Teste

Integrá-lo com frameworks de teste como Vitest e Cypress pode elevar sua abordagem de testes a um novo patamar, facilitando a realização de testes unitários e end-to-end de forma mais controlada e previsível.

Integração com Vitest

Vitest é um framework de testes moderno que pode ser integrado com Mirage JS para testes unitários eficazes.

  1. Configuração do Teste: Aqui está um exemplo de como configurar um teste unitário usando Vitest com Mirage JS:

    typescript
    // tests/unit/user-test.ts
    import { describe, it, expect, beforeEach, afterEach } from "vitest";
    import { criarServidor } from "../../src/mirage/server";
    
    let server: ReturnType<typeof criarServidor>;
    
    beforeEach(() => {
      server = criarServidor({ environment: "test" });
    });
    
    afterEach(() => {
      server.shutdown();
    });
    
    describe("API de usuários", () => {
      it("deve retornar a lista de usuários", async () => {
        server.create("user", { name: "Bruce Banner" });
        const response = await fetch("/api/users");
        const users = await response.json();
        expect(users).toEqual([{ name: "Bruce Banner" }]);
      });
    });

Integração com Cypress

Cypress é usado para testes end-to-end e sua integração com Mirage JS pode ajudar a simular comportamentos de backend complexos.

  1. Configuração do Teste E2E: Aqui está como você pode configurar Cypress com Mirage JS para simular a API durante testes end-to-end:

    typescript
    // cypress/integration/user-e2e.js
    import { criarServidor } from "../../src/mirage/server";
    
    let server;
    
    beforeEach(() => {
      server = criarServidor();
      cy.visit("/");
    });
    
    afterEach(() => {
      server.shutdown();
    });
    
    it("deve exibir a lista de usuários na página", () => {
      server.create("user", { name: "Natasha Romanoff" });
      cy.get("#user-list").should("contain", "Natasha Romanoff");
    });

Considerações Finais

A combinação de Mirage JS com Vitest e Cypress oferece um ambiente robusto e flexível para simular APIs, facilitando os testes de todos os tipos, desde unitários até end-to-end, em projetos TypeScript. Isso não apenas acelera o desenvolvimento, mas também garante que seu aplicativo se comporte como esperado em ambientes mais próximos da produção.