KEMBAR78
Test-Driven Development com JavaScript, Jasmine Karma | PPTX
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!
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
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?
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?

Test-Driven Development com JavaScript, Jasmine Karma

  • 1.
    Test-Driven Development com JavaScript RodrigoBranas – @rodrigobranas - http://www.agilecode.com.br
  • 2.
    “Transformar equipes dedesenvolvimento de software” http://www.agilecode.com.br
  • 3.
    Rodrigo Branas rodrigo.branas@agilecode.com.br http://www.agilecode.com.br • DesenvolvendoSoftware na Gennera • Criando treinamentos na Agile Code • Escrevendo na Java Magazine e PacktPub • Palestrando sobre desenvolvimento de software em eventos, universidades e empresas
  • 4.
    Certificações Formação Acadêmica Ciências daComputaçã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.
  • 5.
    • Há maisde 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.
  • 6.
    Atualmente, qual éa cobertura de testes nos projetos de vocês?
  • 7.
    Qual é oproblema em não ter de testes automatizados?
  • 8.
  • 9.
    Trabalho braçal paratestar várias vezes a mesma coisa
  • 10.
    Trabalhar em umcastelo de cartas
  • 11.
    Você tem medodo projeto em que trabalha?
  • 12.
    Onde entra oAgile nisso tudo?
  • 13.
    Velocidade é aausência de desperdício – Amyr Klink
  • 14.
    Se você trabalhapara eliminar o desperdício, aumentará gradativamente a porcentagem de tempo que gasta adicionando valor ao produto!
  • 16.
    Geralmente a gentepensa e vai codificando, depois vê o que acontece
  • 17.
    Geralmente a gentepensa e vai codificando, depois vê o que acontece
  • 18.
    Geralmente a gentepensa e vai codificando, depois vê o que acontece
  • 19.
    Geralmente a gentepensa e vai codificando, depois vê o que acontece
  • 20.
    É tudo umaquestão de expectativa
  • 22.
    Jasmine Para testar anossa 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
  • 23.
  • 24.
    Como você executaos testes em Java?
  • 26.
    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
  • 27.
    Processo de Instalação Parainstalar a ferramenta, basta digitar o comando abaixo: npm install -g karma karma-cli
  • 28.
    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
  • 29.
    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 }); };
  • 30.
  • 31.
  • 32.
  • 33.
    Vou usar essenegócio o tempo todo?
  • 34.
    Escrever o testeantes limita o escopo, evitando codificar além do necessário
  • 35.
    Já se pegoucodificando várias coisas diferentes ao mesmo tempo?
  • 36.
    Escrever o testeantes não aumenta o tempo de desenvolvimento?
  • 37.
    Escrever o testedepois ou não escrever e assumir um maior número de bugs para corrigir, não aumenta o tempo de desenvolvimento?
  • 38.
    Evitar o refactoringpor 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?
  • 39.
    Ter uma altarotatividade por conta dos problemas causados pela qualidade do código, não aumenta o tempo de desenvolvimento?
  • 40.
    A dificuldade deentendimento por conta de um código sem uma documentação atualizada, como por exemplo um teste, não aumenta o tempo de desenvolvimento?
  • 41.
    Testar repetidas vezesa mesma coisa, manualmente, não aumenta o tempo de desenvolvimento?