[MÚSICA] [MÚSICA] Olá a todos, meu nome é Eduardo Guerra. Estamos aqui no curso de Desenvolvimento Guiado por Testes. Hoje eu vou falar para vocês, hoje eu tenho uma grande surpresa para vocês. Está? Posso falar? Está preparado? Eu gosto muito de chapéu. Só que a surpresa não é essa não. A surpresa é que: Eu não sou careca, como muitas pessoas pensam. Está certo? E você sabe que para eu tirar o chapéu tem que ter motivo muito forte. E é justamente essa aula eu vou mostrar para vocês o chapéu do TDD. Está certo? É esse chapéu aqui está? É chapéu meio esquisito que tem essas 3 cores. Está? O que é que é esse chapéu do TDD? O chapéu do TDD é para mostrar para a gente que no TDD a gente não pode fazer as coisas ao mesmo tempo. Está? Então no momento que eu boto o meu chapéu vermelho, significa que eu estou criando o teste ou seja, que eu estou deixando a minha barrinha de teste vermelha. Então eu coloquei o meu chapéu vermelho, agora eu vou criar teste. No momento que eu estou criando teste, eu não vou refatorar código, e eu não vou criar código de produção. Eu posso até de repente ir lá e criar método que não existe. Está? Mas eu, não vai ser meu objetivo fazer o código funcionar. Quando eu boto o chapéu vermelho eu estou criando o teste. Depois que eu botei o meu chapéu vermelho e criei com sucesso teste que não funciona, eu vou botar o meu chapéu verde. Certo? Esse chapéu verde, ele vai ser para o momento que eu estou criando a funcionalidade da minha classe. Eu estou transformando o meu teste de vermelho para verde. E no momento que eu estou mexendo no verde, eu não vou mexer no meu teste. Está? Porquê? Aqui olha, quando eu estava aqui a minha preocupação era: Eu tenho que criar novo requisito para eu implementar a partir desse teste. Agora os requisitos estão fixados, então eu não vou mexer mais no teste, eu vou mexer no código de produção. Então, o meu objetivo agora é deixar a barrinha verde. Se eu depois que eu deixei a barrinha verde, eu posso ir lá criar novo teste. E aí eu boto meu chapéu vermelho e nesse momento que eu estou criando o teste eu não vou mais mexer no código de produção que é o que eu faço quando eu estou com o meu chapéu verde. E esse azul aqui, que chapéu é esse? Esse aqui é o chapéu da refatoração. Então, a ideia é que, você veio no vermelho, você criou o teste, você passa para o verde que é onde você está, você cria a funcionalidade. Antes de voltar para o vermelho a ideia é você ir para o chapéu azul da refatoração. Está? O que é que você vai fazer aqui? Você pode tanto refatorar o código de teste quanto você pode refatorar o código de produção. O chapéu da refatoração, você não vai criar funcionalidade, você não vai modificar funcionalidade, não vai criar teste nem modificar teste, você simplesmente vai reformular a sua classe, reestruturar, mas o comportamento dela tem que ser o mesmo. Você também pode reestruturar e trabalhar nos seus testes mas o comportamento do teste ou seja, as coisas que ele verifica precisam também ser as mesmas, está? E no momento que eu estou refatorando, eu não estou nem criando o teste nem criando funcionalidade. Eu estou simplesmente melhorando a estrutura do meu software. A gente vai fazer hands on com este chapéu, mostrando quando eu assumo cada papel. E é extremamente importante de você não misturar as coisas. Querer botar mais ou menos assim né, de refatorar enquanto você está criando o teste, aí você já não consegue rodar o teste, ou então querer criar teste ao mesmo tempo que você está fazendo funcionalidade, ou modificar a funcionalidade que já está funcionando enquanto você está criando outra nova, isso não funciona. Está? O chapéu é para você colocar de cada vez na sua cabeça ou você refatora, ou você cria teste ou você cria código de produção, você faz o teste funcionar. Está certo? É extremamente importante você entender isso e não querer misturar as atividade. Você pode e deve alternar esses chapéus com frequência. Agora eu estou refatorando, agora eu estou rodando o teste, mas existe marco muito claro entre as transições. Né? Por exemplo, no momento que eu estou criando o teste, eu estou fazendo teste para que a barrinha fique vermelha. Está? Depois que ela ficou vermelha aí eu posso vir para o chapéu verde, que aí ia fazer a barrinha ficar verde, antes dela ficar verde eu não vou voltar para o vermelho nem para o azul. A partir do momento que a barrinha ficou verde aí eu posso ir para a refatoração. E eu só vou para a refatoração quando a barrinha estiver verde, e ela tem que continuar verde pra eu poder ir criar o meu próximo teste. Está certo? Espero que vocês tenham entendido essa questão dos papeis que você assume durante uma sessão de TDD, e tenha gostado aí do nosso chapéu. Você pode ver o texto complementar aí que fala pouquinho sobre quem criou o chapéu, e se você quiser criar o seu, a licença é uma licença livre. Você pode criar tranquilo o seu chapéu do TDD. Está certo? Então, além disso você ainda descobriu que eu não sou careca. [RISOS] Está bom? Então, até à próxima aula, que a gente vai fazer o nosso hands on com o chapéu do TDD. Muito obrigado. [MÚSICA]