Testando uma aplicação AngularJS utilizando o Karma

Post on 26-May-2015

378 views 2 download

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

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

HENRIQUE LIMASgoogle.com/+HenriqueRamosLimas

github/HenriqueLimas henriquelimas.github.io

ANGULARJS

FRAMEWORK ROBUSTOMV*

Framework sempre mais poderoso

Completamente testavel

Paginas single page

Criação de novos elementos HTML

Aprendizado continuo

ESTRUTURA BÁSICA

Modulos

Controllers

Serviços

Diretivas

ALGUNS PROBLEMAS

Performance, mas porquê?

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

CONFIGURAÇÕES ÚTEIS

Integração com Jenkins

Watcher

Browsers (Chrome, PhantomJS, Firefox, Opera …)

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

JASMINE

PORQUE JASMINE?

Fácil e intuitivo

Padrão do Karma

Ótima documentação

METODOS BÁSICOS

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

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

UTILIZANDO O ANGULAR-MOCK

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

TESTANDO O SERVIÇO

alert(DEMO);

TESTANDO O CONTROLLER

alert(DEMO);

TESTANDO DIRETIVAS

alert(DEMO);

console.log(‘Obrigado’);

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