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