🧪 Testes - ecosif-angular

📋 Visão Geral

Este documento descreve como escrever e executar testes no projeto ecosif-angular.


🚀 Executar Testes

Todos os Testes

# Executar todos os testes
npm test

# ou
ng test

Testes com Cobertura

# Gerar relatório de cobertura
ng test --code-coverage

# Relatório será gerado em: coverage/

Testes em Modo Watch

# Modo watch (re-executa ao salvar)
ng test --watch

📝 Escrever Testes

Teste de Componente

import { ComponentFixture, TestBed } from '@angular/core/testing';
import { NovaPaginaComponent } from './nova-pagina.component';

describe('NovaPaginaComponent', () => {
  let component: NovaPaginaComponent;
  let fixture: ComponentFixture<NovaPaginaComponent>;

  beforeEach(async () => {
    await TestBed.configureTestingModule({
      declarations: [ NovaPaginaComponent ]
    })
    .compileComponents();
  });

  beforeEach(() => {
    fixture = TestBed.createComponent(NovaPaginaComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

Teste de Service

import { TestBed } from '@angular/core/testing';
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { NovoService } from './novo.service';

describe('NovoService', () => {
  let service: NovoService;

  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [HttpClientTestingModule]
    });
    service = TestBed.inject(NovoService);
  });

  it('should be created', () => {
    expect(service).toBeTruthy();
  });

  it('should fetch data', () => {
    // Test implementation
  });
});

🛠️ Ferramentas de Teste

Jasmine

Framework de testes padrão do Angular.

Karma

Runner de testes para execução no navegador.

Configuração

Arquivo: karma.conf.js


✅ Boas Práticas

  1. Testes Unitários - Teste funções isoladamente
  2. Testes de Integração - Teste interações entre componentes
  3. Mocks - Use mocks para dependências externas
  4. Cobertura - Busque alta cobertura de código

Última Atualização: 2025-12-01