Skip to content

Instantly share code, notes, and snippets.

@renatoapcosta
Last active February 24, 2021 00:28
Show Gist options
  • Save renatoapcosta/6073a4911e333b95a817 to your computer and use it in GitHub Desktop.
Save renatoapcosta/6073a4911e333b95a817 to your computer and use it in GitHub Desktop.
Testes Javascript

Testes Javascript

Tipos de testes

Para testes unitário

karma - Para execução dos testes

jasmine - Para o teste

Para teste integrado

protractor - Para realizar testes

Configurando ambiente

npm install -g protractor

npm install -g karma-cli

npm install -g phantomjs

npm install -g chrome

npm install -g karma-jasmine

npm install -g karma-phantomjs-laucher

npm install -g karma-chrome-laucher

karma install

karma start

Angular

Configurando o Karma

angular.json

"test": {
  "options":{
     "main": "src/test.ts",
     "tsConfig": "tsconfig.spec.json",
     "karmaConfig": "karma.conf.js",
     "codeCoverege": true      // As vezes esse flag não vem ativado
  }
}

karma.conf.js

browsers:['ChromeHeadlessNoSandbox' ]

Para executar o comando:

ng test --code-coverage

Estrutura Teste Unitário

import { CartComponent } from './cart.component';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { BookService } from '../../services/book.service';
import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
import { Book } from '../../models/book.model';

const listBook: Book[] = [];

describe('Cart component', () => {

let component: CartComponent;
    let fixture: ComponentFixture<CartComponent>;
    let service: BookService;

    //Configura um modulo
    beforeEach( () => {
        TestBed.configureTestingModule({
            imports: [
                HttpClientTestingModule
            ],
            declarations: [
                CartComponent
            ],
            providers: [
                BookService
            ],
            schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]
        }).compileComponents();
    });

    //Treina o mock service
    beforeEach( () => {
        fixture = TestBed.createComponent(CartComponent);
        component = fixture.componentInstance;
        fixture.detectChanges();
        service = fixture.debugElement.injector.get(BookService);
        spyOn(service, 'getBooksFromCart').and.callFake( () => listBook);
    });

    //Este é um teste
    it('should create', () => {
        expect(component).toBeTruthy();
    });

});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment