Test-Driven Development
com JavaScript
Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br
“Transformar equipes de desenvolvimento de software”
http://www.agilecode.com.br
Rodrigo Branas
rodrigo.branas@agilecode.com.br
http://www.agilecode.com.br
• Desenvolvendo Software na Gennera
• Criando treinamentos na Agile Code
• Escrevendo na Java Magazine e PacktPub
• Palestrando sobre desenvolvimento de
software em eventos, universidades e
empresas
Certificações
Formação Acadêmica
Ciências da Computação – UFSC
Gerenciamento de Projetos - FGV
SCJA, SCJP, SCJD, SCWCD, SCBCD, PMP, MCP e CSM
Experiência
Há mais de 12 anos desenvolvendo software na
plataforma Java com as empresas: EDS, HP, NET,
Citibank, GM, Dígitro, Softplan, OnCast, Senai,
VALE, RBS, Unimed, Globalcode, V.Office, Suntech,
WPlex e Gennera.
• Há mais de 5 anos liderando pessoas.
• Mais de 2000 horas em sala de aula.
• Mais de 100 apresentações em eventos.
• 6 artigos escritos para revistas.
• 1 livro.
• Mais de 500 profissionais treinados.
• Criação de 22 palestras.
• Criação de 10 treinamentos.
• Criação de mais de 3.000 slides.
Atualmente, qual é a cobertura de
testes nos projetos de vocês?
Qual é o problema em não ter de
testes automatizados?
Code and Pray
Trabalho braçal para testar várias
vezes a mesma coisa
Trabalhar em um castelo de cartas
Você tem medo do projeto em
que trabalha?
Onde entra o Agile nisso tudo?
Velocidade é a ausência de
desperdício – Amyr Klink
Se você trabalha para eliminar o
desperdício, aumentará gradativamente
a porcentagem de tempo que gasta
adicionando valor ao produto!
Test-Driven Development com JavaScript, Jasmine  Karma
Geralmente a gente pensa e vai
codificando, depois vê o que acontece
Geralmente a gente pensa e vai
codificando, depois vê o que acontece
Geralmente a gente pensa e vai
codificando, depois vê o que acontece
Geralmente a gente pensa e vai
codificando, depois vê o que acontece
É tudo uma questão de expectativa
Test-Driven Development com JavaScript, Jasmine  Karma
Jasmine
Para testar a nossa aplicação, vamos utilizar
o framework de testes Jasmine. Ele é fácil
de utilizar e se integra bem com
ferramentas de automação.
http://pivotal.github.io/jasmine
Executando os testes
Como você executa os testes em Java?
Test-Driven Development com JavaScript, Jasmine  Karma
Karma
O Karma é uma das ferramenta mais
utilizadas para a execução de testes escritos
em JavaScript. Ela é compatível com
principais frameworks de teste como o
Jasmine, Mocha e QUnit.
http://karma-runner.github.io
Processo de Instalação
Para instalar a ferramenta, basta digitar o
comando abaixo:
npm install -g karma karma-cli
Configuração
O Karma é configurado por meio do arquivo
karma.conf.js. Nele será especificado o
framework de teste, a localização dos arquivos
da aplicação e o ambiente de execução.
karma init
karma.conf.js
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine'],
files: ['js/*.js', 'test/*.js'],
exclude: [],
port: 8080,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
karma start
karma run
Calculadora de Strings
Vamos praticar
Vou usar esse negócio o tempo
todo?
Escrever o teste antes limita o escopo,
evitando codificar além do necessário
Já se pegou codificando várias
coisas diferentes ao mesmo tempo?
Escrever o teste antes não aumenta
o tempo de desenvolvimento?
Escrever o teste depois ou não escrever e
assumir um maior número de bugs para
corrigir, não aumenta o tempo de
desenvolvimento?
Evitar o refactoring por conta da falta de
testes leva a um código de baixa qualidade
e difícil de manter, não aumenta o tempo de
desenvolvimento?
Ter uma alta rotatividade por conta dos
problemas causados pela qualidade do
código, não aumenta o tempo de
desenvolvimento?
A dificuldade de entendimento por conta de
um código sem uma documentação
atualizada, como por exemplo um teste,
não aumenta o tempo de desenvolvimento?
Testar repetidas vezes a mesma coisa,
manualmente, não aumenta o tempo de
desenvolvimento?

Mais conteúdo relacionado

PPTX
Selenium - WebDriver
PPTX
PPTX
Criando Filtros com AngularJS
PPTX
Introdução ao desenvolvimento de aplicações web
PPTX
Criando aplicações Single-Page com AngularJS
PPTX
PPTX
Scope AngularJS
PPTX
Automação de Testes com AngularJS
Selenium - WebDriver
Criando Filtros com AngularJS
Introdução ao desenvolvimento de aplicações web
Criando aplicações Single-Page com AngularJS
Scope AngularJS
Automação de Testes com AngularJS

Mais procurados (20)

PPTX
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
PPTX
Introdução ao AngularJS
PPTX
Refactoring
PPTX
HTTP, JSON, REST e AJAX com AngularJS
PDF
#1 - Git - Introdução
PPTX
Testes Automatizados
PPTX
A evolução do AngularJS
PDF
Material Design simples e rapido com AngularJS
PPTX
Introdução ao AngularJS!
PDF
Introdução ao LiveOak
PPTX
Primeiros passos no Vue.js
PDF
Conectando jBPM com o mundo - TDC 2014 SP
PPTX
PPTX
Apresentação JQuery
PPTX
Criando aplicações java fx em minutos
PDF
JavaFX: Desktop para desenvolvedores WEB
PPTX
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
PDF
Clean Architecture
PDF
O poder das Progressive Web Apps
PPTX
Domain-Driven Design
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Introdução ao AngularJS
Refactoring
HTTP, JSON, REST e AJAX com AngularJS
#1 - Git - Introdução
Testes Automatizados
A evolução do AngularJS
Material Design simples e rapido com AngularJS
Introdução ao AngularJS!
Introdução ao LiveOak
Primeiros passos no Vue.js
Conectando jBPM com o mundo - TDC 2014 SP
Apresentação JQuery
Criando aplicações java fx em minutos
JavaFX: Desktop para desenvolvedores WEB
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Clean Architecture
O poder das Progressive Web Apps
Domain-Driven Design
Anúncio

Destaque (15)

PPTX
JavaScript - Date
PPTX
JavaScript - Expressões Regulares
PDF
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
PPTX
Técnicas de Refactoring
PDF
#2 - Git - DAG
PPTX
Clean Code
PDF
Node.js - #5 - Process - Rodrigo Branas
PDF
Node.js - #6 - Core Modules - net - Rodrigo Branas
PDF
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
PPTX
XP - Extreme Programming
PPTX
Criando serviços com AngularJS
PDF
HTTP Interceptors com AngularJS
PPTX
Utilizando diretivas com AngularJS
PPTX
Evoluindo a arquitetura de uma aplicação com AngularJS
PPTX
Construindo Diretivas com AngularJS
JavaScript - Date
JavaScript - Expressões Regulares
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Técnicas de Refactoring
#2 - Git - DAG
Clean Code
Node.js - #5 - Process - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
XP - Extreme Programming
Criando serviços com AngularJS
HTTP Interceptors com AngularJS
Utilizando diretivas com AngularJS
Evoluindo a arquitetura de uma aplicação com AngularJS
Construindo Diretivas com AngularJS
Anúncio

Semelhante a Test-Driven Development com JavaScript, Jasmine Karma (20)

PDF
Tornando se um DevOps sem perder a cabeça #SE7I2016
PDF
Como estruturar seus testes com jasmine e karma
PPT
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
PDF
Certificacoes java
PDF
Agile Brazil 2018
PDF
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
DOCX
PPTX
Tutorial de instalação do Maven
PDF
[Karla e Larissa] Agile Brazil 2018
PPTX
T@rget trust t-curso de ferramentas para automação de teste de software
PPTX
T@rget trust t-curso de ferramentas para automação de teste de software
PDF
TDC2015: Testes em APIs REST com Rest-Assured
PDF
Palestra sobre Automação de Testes com Rest-Assured
PPTX
Testes unitários x unit
PDF
Teste de Performance - 3º Encontro da ALATS
ODP
PHPUnit e teste de software
PDF
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
PDF
Ferramentas open source para auxiliar os testes de software
PDF
Maio 2016 - O QA em um Time Ágil
PPT
Apresentacao Convenio
Tornando se um DevOps sem perder a cabeça #SE7I2016
Como estruturar seus testes com jasmine e karma
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Certificacoes java
Agile Brazil 2018
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
Tutorial de instalação do Maven
[Karla e Larissa] Agile Brazil 2018
T@rget trust t-curso de ferramentas para automação de teste de software
T@rget trust t-curso de ferramentas para automação de teste de software
TDC2015: Testes em APIs REST com Rest-Assured
Palestra sobre Automação de Testes com Rest-Assured
Testes unitários x unit
Teste de Performance - 3º Encontro da ALATS
PHPUnit e teste de software
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Ferramentas open source para auxiliar os testes de software
Maio 2016 - O QA em um Time Ágil
Apresentacao Convenio

Mais de Rodrigo Branas (8)

PDF
Node.js - #4 - Timers - Rodrigo Branas
PDF
Node.js - #3 - Global Objects - Rodrigo Branas
PDF
Node.js - #1 - Introdução - Rodrigo Branas
PDF
#6 - Git - Desfazendo as coisas
PDF
#5 - Git - Contribuindo com um repositório remoto
PDF
#4 - Git - Stash
PDF
#3 - Git - Branching e Merging
PPTX
Desvendando a linguagem JavaScript
Node.js - #4 - Timers - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
#6 - Git - Desfazendo as coisas
#5 - Git - Contribuindo com um repositório remoto
#4 - Git - Stash
#3 - Git - Branching e Merging
Desvendando a linguagem JavaScript

Último (17)

PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PDF
Jira Software projetos completos com scrum
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PDF
Banco de Dados 2atualização de Banco de d
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PPTX
ccursoammaiacursoammaiacursoammaia123456
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PPT
Conceitos básicos de Redes Neurais Artificiais
PPT
Aula de Engenharia de Software principais caracteristicas
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PPTX
Tipos de servidor em redes de computador.pptx
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
Jira Software projetos completos com scrum
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Banco de Dados 2atualização de Banco de d
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
ccursoammaiacursoammaiacursoammaia123456
SEMINÁRIO DE IHC - A interface Homem-Máquina
Processamento da remessa no SAP ERP, SCM610 Col15
Conceitos básicos de Redes Neurais Artificiais
Aula de Engenharia de Software principais caracteristicas
Processos no SAP Extended Warehouse Management, EWM100 Col26
Analise Estatica de Compiladores para criar uma nova LP
Tipos de servidor em redes de computador.pptx

Test-Driven Development com JavaScript, Jasmine Karma