Testando uma aplicação AngularJS utilizando o Karma

24
TESTES UNITÁRIOS Testando uma aplicação AngularJS utilizando o Karma

description

Realize testes unitários de modo amigavel e eficiente utilizando AngularJS e o Karma runner. Deixe o seu teste unitário que seja de compreenssão para todos, não so desenvolvedores, utilizando a biblioteca Jasmine para descrever os testes.

Transcript of Testando uma aplicação AngularJS utilizando o Karma

Page 1: Testando uma aplicação AngularJS utilizando o Karma

TESTES UNITÁRIOSTestando uma aplicação AngularJS utilizando o Karma

Page 2: Testando uma aplicação AngularJS utilizando o Karma

HENRIQUE LIMASgoogle.com/+HenriqueRamosLimas

github/HenriqueLimas henriquelimas.github.io

Page 3: Testando uma aplicação AngularJS utilizando o Karma

ANGULARJS

Page 4: Testando uma aplicação AngularJS utilizando o Karma

FRAMEWORK ROBUSTOMV*

Framework sempre mais poderoso

Completamente testavel

Paginas single page

Criação de novos elementos HTML

Aprendizado continuo

Page 5: Testando uma aplicação AngularJS utilizando o Karma

ESTRUTURA BÁSICA

Modulos

Controllers

Serviços

Diretivas

Page 6: Testando uma aplicação AngularJS utilizando o Karma

ALGUNS PROBLEMAS

Performance, mas porquê?

Page 7: Testando uma aplicação AngularJS utilizando o Karma

KARMA

Page 8: Testando uma aplicação AngularJS utilizando o Karma

O QUE É

Servidor node para testes unitários e e2e

Framework: Jasmine, Mocha, QUnit

Grunt e Gulp

Desenvolvido pela equipe do AngularJS

Fácil de configurar

Page 9: Testando uma aplicação AngularJS utilizando o Karma

CONFIGURAÇÕES ÚTEIS

Integração com Jenkins

Watcher

Browsers (Chrome, PhantomJS, Firefox, Opera …)

Page 10: Testando uma aplicação AngularJS utilizando o Karma

module.exports = function(config) { config.set({ frameworks: ['jasmine'], files: [ 'js/*.js', 'test/**/*Spec.js' ], exclude: [ ], preprocessors: {}, reporters: ['progress'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome'], singleRun: false });

Arquivos a serem incluidos no teste

Framework do teste

Arquivo de configuração

Page 11: Testando uma aplicação AngularJS utilizando o Karma

JASMINE

Page 12: Testando uma aplicação AngularJS utilizando o Karma

PORQUE JASMINE?

Fácil e intuitivo

Padrão do Karma

Ótima documentação

Page 13: Testando uma aplicação AngularJS utilizando o Karma

METODOS BÁSICOS

Page 14: Testando uma aplicação AngularJS utilizando o Karma

describe(‘Testes unitários', function() { … }); !

!

it(‘deveria testar alguma coisa', function() { … });

Agrupador que define um determinado grupo de

testes

Agrupador que define o inicio de um caso de teste

Agrupadores

Page 15: Testando uma aplicação AngularJS utilizando o Karma

beforeEach('jasmine', function() { … }); !

afterEach('jasmine', function() { … }); !

expect(42).toBe(42);

Realizando um teste

Utilitários antes e depois de cada “it”

Teste e Utilitários

Page 16: Testando uma aplicação AngularJS utilizando o Karma

UTILIZANDO O ANGULAR-MOCK

Page 17: Testando uma aplicação AngularJS utilizando o Karma

Injeção de dependências nos testes

Simulação de respostas de servidor

Testes de timeoutes e intervalos

Simulação do timeZone

FUNÇÕES BÁSICAS

Page 18: Testando uma aplicação AngularJS utilizando o Karma

TESTANDO O SERVIÇO

Page 19: Testando uma aplicação AngularJS utilizando o Karma

alert(DEMO);

Page 20: Testando uma aplicação AngularJS utilizando o Karma

TESTANDO O CONTROLLER

Page 21: Testando uma aplicação AngularJS utilizando o Karma

alert(DEMO);

Page 22: Testando uma aplicação AngularJS utilizando o Karma

TESTANDO DIRETIVAS

Page 23: Testando uma aplicação AngularJS utilizando o Karma

alert(DEMO);

Page 24: Testando uma aplicação AngularJS utilizando o Karma

console.log(‘Obrigado’);

google.com/+HenriqueRamosLimas github/HenriqueLimas henriquelimas.github.io