"...Testes de software é uma investigação conduzida para fornecer informações às partes interessadas sobre a qualidade do produto ou serviço sob teste."
Nem todos os problemas são causados por erros de código, em boa parte das vezes, o resultado esperado, nem sempre é o que de fato será executado.
"Um estudo realizado pelo National Institute of Standards and Technology em 2002 relata que os bugs de software custam à economia dos EUA
$59,5 bilhões anuais. Mais de um terço desse custo poderia ser evitado se fosse feito um melhor teste de software."
Testes de Unidade (Unit Test)
Desenvolvimento Orientado a Testes (TDD)
Desenvolvimento Orientado a Comportamentos (BDD)
Testes unitários são direcionados a unidades de código, geralmente a funções ou módulos. Ao tornar o teste específico para uma única função, o teste deve ser simples, rápido de escrever e rápido de ser executado.
Desenvolvimento Orientado a Testes, ou TDD é uma prática onde escreve-se primeiro os testes, antes do código de implementação. Tem por objetivo obter um cobertura de testes elevada, o que refere-se à porcentagem do código testado. Quanto maior a porcentagem, melhor.
Desenvolvimento Orientado a Comportamento, ou BDD é uma prática onde os testes são especificados como cenários e sequencia de passos.
const gulp = require('gulp');
const test = require('gulp-mocha');
gulp.task('default', [ 'test', 'watch']);
gulp.task('watch', () => {
return gulp.watch('*.js', ['test']);
});
gulp.task('test', () => {
return gulp.src('*.js')
.pipe(test({reporter: 'nyan'}));
});
http://bit.ly/control-flow-nodejs
http://bit.ly/mva-erickwendel
http://erickwendel.com.br
http://netcoders.com.br/blog
http://slides.com/erickwendel/testes-com-javascript/fullscreen
https://github.com/ErickWendel/palestra-vivaReal-testes-js