Fala Devi beleza seja bem-vindo à terceira aula da jornada desenvolver testes eu sou andrel kazac e nesse evento você tá aprendendo o caminho que qualquer deve pode seguir para subir de nível na carreira entregando código de qualidade Lembrando que o código de qualidade é aquele que tem três características fundamentais ele resolve os problemas do usuário é fácil de manter e não tem bugs Essa é a aula mais Importante da jornada porque ela é o pontapé inicial para você subir o nível de qualidade do seu código e subir o nível da sua carreira também muitos devis
me perguntam pô André mas eu sei que precisa testar eu sei que é bom entregar com mais qualidade mas não dá tempo como que eu vou fazer isso aí se mal dá tempo de entregar o que eu tenho que entregar e é isso que eu quero te mostrar hoje o passo a passo que eu aplico no meu dia a dia para transformar O pedido do usuário e um código de qualidade e que você também pode aplicar mesmo quando o prazo está apertado mesmo quando o chefe não liga paraa qualidade ou mesmo se você não tem
tanto conhecimento técnico ou tanta experiência eu tava trabalhando isso ontem ó análise de negócio ó não sei se você consegue ver ó ó visão geral tá tem que arrumar tudo viu André ó ó bonitinho isso aqui André tudo é fruto do do do do teu curso tá legal tá seguindo o método Aí ó olha aí então tô sim eu tô te falando você me ajudou bastante ó tá vendo aqui ó eu quando eu recebi uma demanda eu focava em como fazer eh quando era no sistema legado Ah vou fazer uma página ASP clássico tal vou
vou fazer um ou era quando era integração vou integrar com tal integração não sei o quê mas na verdade o foco que eu tinha que ter como você falou no curso é em o que a pessoa quer Qual é o objetivo dela Qual é o Resultado que ela espera então foi isso que o curso me trouxe ele me trouxe essa clareza eu sabia desenvolver mas eu não sabia o que que essa esse esse passo a passo que você passou no curso que ele era mais eh bem aproveitado ele er ele dava um resultado melhor entendeu
então quando eu entregar quando eu entrego alguma coisa agora eu consigo eh ter uma um pouco mais de tranquilidade de não ter publicar e e cara é exatamente como você Fala no curso é orientação a esperança as pessoas trabalham Dessa forma não é brincadeira isso entendeu E aí hoje em dia eu olho para isso eu falo não não é assim eu vou fazer todo esse passo a passo aqui e aí eu vou ter um pouco mais de tranquilidade para fazer a publicação é quando eu comecei o curso com você cara ali eu tava eu não
me sentia segurando em nada eu não não me sentia ali não adiantar eu entrar num numa empresa daquela forma Me conhecendo do Jeito que eu me conhecia eu ia me cobrar muito porque eu tenho uma necessidade de entregar resultados e da melhor maneira possível mas cara eu só tenho te agradecer e e assim eu sempre vou lá essa segana mesmo eu fui lá dei uma olhadinha aí sim quando eu começo a me acostumar com coisa errada eu falei já sei onde eu vou eu vou lá no André antes de começar vamos dar aquela revisada no
que você já aprendeu até aqui porque aí você vai ver que a aula de hoje vai Fazer mais sentido na primeira aula você descobriu que tem várias coisas que você aprendeu errado e outras coisas que você nem aprendeu e que fazem você cometer três erros que acabam com a qualidade do software fazer tudo que o seu usuário pede focar demais Em lógica e recursos da linguagem e escrever código linguição e na segunda aula você viu que o melhor jeito de evitar esses erros aí é aprender a masterizar os quatro pilares do software de qualidade a
base Teórica sobre testes análise de requisitos arquitetura de software e testes unitários eu vou começar explicando como funciona esse passo a passo e aí você vai ver como que as coisas que a gente já viu nas outras aulas vão se conectando Pensa aí ó Por que que você acha que eu demorei 13 anos para começar a entregar código com qualidade foi porque eu comecei pulando etapas lembra que lá na aula um eu falei que a gente aprende a focar só no como Quando eu descobri sobre teste unitário eu só queria aprender a programar teste como
que eu faço assert como que eu uso os Mox se é melhor usar x unit ou n unit no meu teste eu conseguia fazer testes com código de exemplo código simples mas quando eu pegava um código da empresa um código de verdade mesmo para testar Não rolava E mesmo quando eu conseguia fazer parecia que os meus testes não estavam testando nada será que isso não acontece com você também se sim é porque Provavelmente você também tá pulando algumas etapas escrever o código do software e o código do teste são só etapas que estão na metade
final do processo da entrega e se você quiser começar qualquer coisa pelo final sempre vai ser mais difícil por exemplo você reclama que não consegue testar porque não tem tempo a solução não é aprender a fazer teste unitário mais rápido o que resolve esse problema é você aprender a estruturar o Seu fluxo de trabalho para favorecer os testes e não para correr com a entrega fazer uma boa análise planejar os testes orçar suas atividades direito deixar claro pro seu usuário aquilo que é mais fácil ou que é mais difícil um outro exemplo você reclama que
o código da sua empresa ele é muito complexo e que aí não tem como testar a solução não é aprender a fazer testes Mega complexos com Moc super avançados o que resolve é aprender a simplificar o Seu o código e tem uma estratégia para trabalhar com códigos desses tipos aí você tá vendo como a solução ela tá sempre antes do código então esse passo a passo aqui ele serve para você preparar o terreno antes e aí quando chegar na parte do código ali na parte do teste o seu trabalho fica bem mais simples então dá
uma chance para esse processo e você vai ver como a qualidade da sua entrega vai mudar gradativamente Vamos lá o nosso exemplo é esse sistema aí de reservas do hotel boa jornada ignoro as minhas habilidades terríveis de layout beleza porque é melhor você se concentrar aqui nos conceitos que eu vou te passar sei que não é muito bonito mas é o que tem esse aí é o formulário que verifica a disponibilidade dos quartos então você informa aqui a data de entrada deixa eu dar uma esticadinha na tela aqui ó a data de entrada a data
de saída a quantidade de adultos quantidade De criança e você informa o tipo do quarto que você quer e aí já tem algumas validações prontas Se você clicar aqui no botão consultar já vai aparecer algumas mensagens aqui por exemplo que são Campos obrigatórios né em forma data de entrada né não preenchi nada aqui e e ele fez algumas validações essa aqui é uma aplicação aspnet comum que tem uma View tem já uns javascripts aqui para pegar os dados na tela e no no final tudo acontece aqui na nossa Controller Né Tem uma Action aqui é
E aí você vê aqui que ele invoca a classe de negócio reserva né uma classe de domínio faz umas validações aqui ó pro caso de dar erro e retornar as mensagens pra tela se não tiver nenhuma validação aí ele chama aqui o obter lista que é esse método aqui vai fazer a consulta no banco e aí baseado no que ele consultar no banco ele dá uma outra mensagem né se ele não achar eh nenhum quarto e ele coloca aqui quarto e disponível se ele achar um Quarto de acordo com essa data aqui ele vai falar
que o quarto não tá disponível né É só uma validação Zinha bem simples aqui e e imagina que esse sistema já está rodando em produção então a gente pegou um sistema aqui para dar manutenção e aí o nosso usuário ele manda um e-mail e com um requisito né solicitando uma alteração a alteração que ele pediu é a seguinte preciso que o sistema me envia um e-mail paraa recepção quando o cliente faz uma Reserva muito em cima da hora que é pra gente entrar em contato com ele e avisar que pode dar problema na hora do
checkin então a gente só recebeu esse requisito e nem falamos com ele ainda ele só fez um pedido antes de sair mexendo com código o nosso primeiro passo é entender o problema a gente precisa entender direito o que que ele precisa é aqui que começa a nossa análise de requisitos você vai fazer perguntas muito importante aqui a gente tem que Fazer perguntas para ter mais informações sobre o contexto e entender o que que o seu usuário precisa de verdade por que que ele precisa da alteração e é importante aqui fazer as perguntas certas não adianta
você ficar fazendo perguntas solta aqui porque você geralmente vai ter as mesmas respostas se você não perguntar direito Ele sempre vai te responder com o como e não com o porquê Se você prestar atenção No requisito aqui o que ele falou que ele precisava era o como ele precisa que envie um e-mail então na cabeça do usuário o Como é o problema mas na verdade o que você precisa saber é o porquê por você precisa disso E aí o que a gente tem que entender é se esse meio que ele tá pedindo é realmente a
melhor solução Será que faz sentido ou será que faz sentido resolver o problema de outro jeito então ao invés de Perguntar muito importante isso anota ao invés de perguntar o que você precisa é muito melhor você perguntar o que que te atrapalha ou atrapalha o seu trabalho quem é afetado por esse problema Qual que é a consequência disso né o que que acontece quando tem esse problema isso gera um desperdício de trabalho por exemplo você tá trabalhando mais às vezes é um esforço manual um esforço operacional ou seja tá gastando o seu tempo e consequentemente
gastando Dinheiro da empresa será que você tem algum tipo de retrabalho de novo né a mesma coisa é tá gerando um trabalho adicional E você tá perdendo tempo será que isso faz a empresa ganhar menos dinheiro ou às vezes faz ela gastar mais do que devia todas essas perguntas aí elas vão fazer o seu usuário pensar no trabalho dele pensar o que que tá acontecendo e isso é muito bom porque muitas vezes o usuário ele sai pedindo coisas sem nem Pensar direito ele vê alguma coisa ele tem uma ideia mirabolante uma ideia maluca e sai
pedindo para fazer no nosso exemplo aqui o problema é o seguinte se o cliente vamos voltar lá pro requisito só pra gente destacar aqui ó se o cliente ele faz uma reserva muito em cima da hora pode de dará problema Por que que dá problema porque não dá tempo de arrumar o quarto e de preparar as coisas ali da na recepção para que ele seja recebido no hotel De Fato então o o que ele a o o grande problema que a gente tem aqui no nosso hotel é que o nosso usuário né o nosso cliente
no final das contas ele acaba tendo que ficar esperando na recepção né e eh isso acaba gerando insatisfação o cliente fica lá reclamando Porque como ele marcou muito em cima da hora ele é obrigado a esperar ninguém gosta de esperar porque às vezes a pessoa tá de férias ou às vezes ela tem algum compromisso já agendado e não pode ficar Esperando então o grande problema é esse a gerência recebe muitas reclamações nesse sentido Então ela quer um mecanismo que evite esse tipo de problema e aí o segundo passo que a gente vai tomar aqui é
definir a solução do problema agora que a gente já entendeu o problema de fato é muito mais fácil definir uma solução Então veja que aqui é sempre um passo a passo e importante ressaltar também e esse é um trabalho que você não deve fazer sozinho Ou sozinha aí aproveita que e você vai ter essa conversa essa conversa aí com o usuário para entender o problema fazer essas perguntas e já aproveita para definir a solução junto com ele para otimizar o seu tempo porque daí você não fica perdendo tempo lá é marcando mais reunião n esperando
ele te responder um e-mail você já sai de uma conversa com tudo pronto com o entendimento do problema a solução e a aprovação você já Confirma se pode fazer ou não Só não esquece que precisa separar esses momentos da conversa a primeira coisa é entender o problema depois você fala da solução se misturar as duas coisas vão se misturar também e você vai se confundir essa conversa aí ela é fundamental para evitar retrabalhos no futuro a pior coisa que pode acontecer com você enquanto deve né É descobrir que Você alterou um monte de coisa no
seu código alterou um monte de Coisa no projeto no banco de dados na infraestrutura às vezes até do sistema e não resolve o problema tava tudo errado não vai servir para nada e quanto mais você avança no desenvolvimento mais retrabalho você vai ter para desfazer o que já foi feito e tentar fazer de outro jeito fora o stresse que isso gera também né Porque ninguém gosta de saber que trabalhou à toa É muito difícil dar rollback nas coisas que você já fez e aqui uma outra Dica bem legal se a solução parece muito difícil tem
grandes chances dela não ser a melhor opção que você tem eu eu não tô dizendo aqui que você sempre tem que escolher as soluções mais fáceis até porque muitas vezes essas soluções mais fáceis elas são gambiarras disfarçadas muito cuidado com isso aí mas eu tô falando isso só para você ficar com o radar ligado porque tem muitas soluções que são e muito complexas e elas tendem a Gerar mais Bugs e código mais difícil de dar manutenção porque a solução vai ficando complexa isso torna o código complexo E aí a tendência é que isso eh Gere
mais bugs no futuro Gere mais problemas eh no nosso exemplo aqui eh não vale a pena a gente entrar em contato com o cliente para depois que ele já fez a reserva né Não adianta falar com ele que ele vai ter problema depois que ele Já reservou isso daí só vai acabar gerando mais trabalho operacional e no final das Contas não muda o fato de que ele vai ter ter que esperar no chequinho a gente só tá avisando antes o stress no final é o mesmo então a gente chegou aqui num consenso com o usuário
é melhor não deixar o cliente fazer essa reserva se a data que ele informou tá muito próxima o próximo passo é detalhar a solução de negócio veja que aqui a gente ainda não tá falando exatamente sobre código Esse passo é para entender o que que vai acontecer quando o usuário interagir com O software depois que você fizer alteração e essa aqui é a parte mais subestimada da análise o requisito muitas vezes ele até tem algumas informações sobre isso mas geralmente elas nunca são exatas e nem são verificáveis no nosso exemplo aqui ó o que que
significa por exemplo muito em cima da hora isso significa dias meses ou são horas de verdade lembra lá que a tela ela tem duas datas né tem a data de entrada e a data de saída Qual das datas Que eu tenho que validar nesses casos eu tenho que fazer uma validação lá e outra que que acontece se o usuário tentar fazer a reserva muito em cima da hora ele vai receber um e-mail ele vai receber só uma mensagem Qual que é o texto desse e-mail Qual que é o texto dessa mensagem o usuário ele não
para para pensar nessas coisas quando ele pede alteração só que um negócio muito louco né ele espera que você saiba tudo que Precisa ser feito ele simplesmente te faz um pedido com texto soltos mas na cabeça dele você vai entender e vai fazer tudo que ele precisa exatamente do jeito que ele Imagina é por isso que ele fica eh reclamando lá que ele explica as coisas e você não entende é por isso que você fica reclamando você o deve fica lá reclamando que ele não sabe pedir que ele aind deciso que ele nunca sabe o
que Ele quer ele geralmente fala um monte de coisa um monte de palavras soltas né E essas palavras elas dão margem para várias interpretações então agora é a hora de desenrolar as informações que não são Claras e assim antes que você começa a resmungar aí ah que isso aqui não é meu trabalho que isso aqui não tem nada a ver com isso cara você tem duas opções você pode aí ficar reclamando do usuário você pode ficar reclamando da empresa reclamando de tudo ou você pode Aprender a transformar requisito em software e se destacar no meio
da galera que só fica reclamando a opção é sua é você que escolhe e tem várias formas de você estruturar essa interação do usuário com o software e eu recomendo que você crie um plano de testes que é uma lista de cenários com texto padronizado nesse formatinho aqui ó quando o usuário executa a ação e ocorre a regra de negócio deve acontecer o resultado esperado então trazendo do Nosso exemplo para um um plano de testes possível ficaria desse jeito quando o cliente clicar em consultar e a data de entrada for anterior à data atual mais
5 dias deve exibir a mensagem a reserva deve ser feita com 5 dias de antecedência Esse aí é o cenário que valida essa regra nova que o usuário pediu como a gente tá alterando um negócio que já funciona a gente também precisa de mais cenários só para ter certeza que não quebrou nada que já tava Funcionando e também para cobrir outras condições Então vamos estruturar mais cenários de teste aqui ó quando o cliente clicar em consultar e a data de entrada for igual a data atual mais 5 dias deve exibir a mensagem quarto disponível Faça
a sua reserva ou seja a gente tá dentro do prazo que é possível né são até cinco dias a nossa regra aqui eh um outro cenário é quando o cliente clicar em consultar e a data de entrada for posterior à data atual mais 5 dias Deve exibir a mensagem quarto disponível faça sua reserva Então veja que aqui a gente criou cenários de teste para todas as situações que a gente julgou necessári aqui de acordo com o requisito que o nosso usuário pediu né De acordo com a nossa conversa do entendimento ali do problema de fato
e eu chamo essa estrutura aqui de plano de testes por além de descrever todo o processo clicar no botão exibir mensagem ela também vai servir para testar suas alterações então Com um único documento só um você já tem um detalhamento completo da alteração e de quebra vai sair um manual de de e testes do seu software e esse trabalho aí ele pode ser feito lá na fase de análise se você trabalha com Waterfall ou nos refinamentos ou nas Planes né se você trabalha com scrum ou com kamban aí e aí o nosso próximo passo é
detalhar as atividades técnicas e definir os orçamentos então uma vez que eu já tenho Um plano de teste né eu já consigo detalhar o que eu preciso fazer de fato e aqui pô não tem nada de novo né se você é Dev é uma atividade muito comum que provavelmente você já faz no seu dia a dia aqui sim é hora de abrir o código e ver tudo que precisa ser alterado A diferença é que seguindo esse passo a passo você vai ter outros insumos aqui para te ajudar no detalhamento Como por exemplo o plano de
testes você não vai Abrir o código aleatoriamente né só vai dar uma olhada al no que você acha que é agora você tem embasamento se você já sabe que o usuário vai clicar no botão que vai aparecer mensagem né que o cálculo que você vai fazer tem que usar uma taxa diferente é muito mais fácil deduzir onde que você precisa fazer as alterações mesmo que ainda seja no nível mais macro mas você tem um direcionamento daqui pra frente o plano De teste ele vai ser o seu guia para quase tudo que você vai fazer por
isso que é importante caprichar na hora de fazer ele e outra com detalhamento maior aqui você também vai conseguir uma estimativa muito melhor para cada atividade técnica claro que assim no final eh sempre que você vai fazer um orçamento é um chute mas seguindo esse passo a passo você vai conseguir chutar com muito mais certeza ao invés de só colocar lá uma Gordurinha de 10% no cronograma na história para fazer teste e eu sei que assim às vezes parece que é muita coisa que você tem que fazer antes de pegar no código mas muitas vezes
você já faz esse trabalho você já faz todos esses levantamentos a diferença é que você faz de um jeito largado de um jeito não organizado você vai fazendo reunião vai tirando dúvida vai anotando em algum lugar depois você nem lembra onde que você anotou e o que Que você tem que olhar o que eu tô te mostrando aqui é uma forma de organizar tudo isso em torno de um documento só e que vai te guiar em todo o processo né vai te dar toda a informação que você precisa e é por isso também que o
usuário precisa participar de tudo isso por quê Porque além de ele falar e como são os fluxos como são as regras que a gente tem que seguir aqui ele também precisa saber desde o começo do trabalho sobre a Complexidade tanto da alteração quanto de se fazer testes porque às vezes até testar é mais complexo do que fazer quando você faz isso fica muito mais fácil negociar prazo se você precisar né E aí você também acaba com aquela desculpa lá de não conseguir testar porque não dá tempo de não conseguir fazer um código melhor porque não
dá tempo você vai ter insumo para negociar seu cliente já vai saber seu usuário já vai saber o quão complicado é Isso por isso ele precisa participar E aí sim o próximo passo é programar aí hora de botar a mão na massa já tem a lista de atividades já sei como testa tudo já tem os orçamentos agora é só pegar primeira ade da sua lista e começar a codar um ponto muito importante aqui é ver se as suas atividades técnicas se elas estão bem divididas porque na fase de análise às vezes não dá tempo ali
de detalhar tudo que você precisa n antes de sair Alterando o ideal mesmo é que elas sejam pequenas né atividades pequenas o suficiente para fazer em um dia ou 8 horas aí ou um pouquinho menos né dependendo da quantidade de horas que você coloca no dia para trabalho e isso não é uma recomendação só para deixar seus cronogramas ou seu gráfico de Burn lá do time mais bonito é que o tamanho da atividade que você coloca ele influencia indiretamente no tamanho do seu código também tamanho dos métodos Tamanho da classe Pode reparar aí ó se
você precisa fazer um cálculo Mega complexo por exemplo e na sua atividade lá tá escrito fazer cálculo Você tem uma tendência muito maior a fazer um código linguição agora se lá no detalhamento já tá tudo bem descrito consultar taxas do produto organizar dados do cliente executar fórmulas padrão gravar dados do pedido você tende a dividir o seu trabalho em tarefas menores e escrever métodos menores Também e uma outra dica aqui do campo de batalha no começo foca em resolver o problema não fica viajando não fica polindo a maçã se você já planejou tudo antes essa
hora aqui é a de executar não é a hora de inventar consulta o plano de testes veja quais cenários você tem ali e que tem a ver com a sua atividade e usa eles para manter a sua atenção na entrega o que o código que você tá fazendo precisa resolver um cenário do seu plano de Teste é claro que o o cuidado com a arquitetura do software sempre vai ser válido em todas as etapas do projeto mas principalmente nessa que você tá programando só que no começo da sua atividade se você se concentra em resolver
o problema primeiro você sempre vai ter um software que funciona e aí nos próximos passos você vai ter oportunidade de melhorar isso mas se você tiver sempre um código que Funciona você sempre ele vai poder entregar alguma coisa senão você vai ficar polindo A Maçã Você vai ficar eh querendo fazer as coisas que você quer o que você precisa e chega no final do dia seu prazo acaba e você não tem nada para entregar aí que que você faz você corre você deixa de fazer teste deixa de pensar na qualidade ou seja todo o processo
que você fez ali no começo toda a ideia que você tinha ela vai pro ralo porque acabou o tempo isso acontece não É porque você não sabe trabalhar ou porque Tecnicamente você não é eficiente é porque às vezes as coisas acontecem o dia passa a vida Acontece E aí às vezes não deu tempo então tenha sempre um trabalho pronto para entregar e aí você vai ter sim a oportunidade nos próximos passos aqui do desenvolver test que você vai ver que você pode sim fazer uma melhoria nesse código não precisa ser tudo de primeiro aqui no
nosso caso o que a gente vai fazer aqui é adicionar Uma nova validação eu já tenho o código pronto dessa validação aqui a nossa classe de reserva né olhando aqui a nossa classe de Controller a validação ela acontece aqui ó é válida para consultar então ele preenche uma reserva e chama o método aqui ó é válida para consultar essa reserva é preenchida com os dados que vieram da tela né E aí a gente executa esse método aqui vamos ver o que que esse método faz ó todas as validações aquelas mensagens que a gente Viu lá
no começo elas estão aqui então o que a gente vai precisar fazer É só adicionar uma no nova mensagem adicionando uma nova validação aqui ó se a data da entrada for menor do que date time today Ou seja a data atual é o que tá escrito lá na regra e a de Day 5 então a data atual mais 5 dias né Se essa data de entrada for anterior a gente tem que mostrar a mensagem aqui ó a reserva deve ser feita com 5 dias de antecedência E Aí o nosso código ficou assim não precisou enviar
e-mail não precisou criar texto de e-mail veja que aqui a nossa solução ficou Super Simples então a gente diminui a quantidade de trabalho se você sai fazendo o que o usuário quer você já sai desenvolvendo um monte de tralha lá que você nem sabe se vai usar de verdade e às vezes até usa mas não resolve o problema Nós criamos um um um uma solução junto com o usuário a gente investiu um tempo para fazer análise Para entender o problema para desenvolver uma solução e no final em termos de código se tornou uma coisa super
mega simples muito mais fácil do que criar um e-mail invocar smtp server aqui não teve necessidade Então veja que o trabalho da análise ele começa a se pagar já nos primeiros minutos que você faz as suas alterações em código o próximo passo são os testes unitários finalmente é a hora da parte técnica dos Testes criar assert criar Moc para Verificar se depois da sua alteração tudo tá funci funcionando como requisito péo e aqui é interessante destacar uma parada você não precisa fazer os testes unitários só depois que você terminar toda a sua atividade terminar de
escrever todo o seu código lá no finalzinho você pode fazer esses testes logo depois de programar cada pequena parte cada método até durante o desenvolvimento também se você quiser usar a tdd o que importa aqui é testar Olhando pro plano de testes para todas as situações lá que você já definiu com o usuário não adianta fazer todo esse trabalho de análise se quando chegar no final você testa só olhando pro código ou você testa pensando naquilo que você lembra que conversou com o usuário isso aí é o que todo mundo faz isso aí é o
que talvez você já faz e não dá resultado não dá certo então tem que tomar muito cuidado aqui para não repetir o mesmo erro de sempre você já Fez análise você já definiu tudo que precisava agora é hora de escrever código se concentrar em escrever código não precisa ficar lembrando não precisa tentar puxar da memória inventando teste volta lá no plano de testes ele vai te dar as respostas se você fez um bom trabalho lá o plano de testes ele responde uma dúvida aqui cara é muito muito comum para quem começa no teste unitário por
onde que eu começo os testes todo mundo me pergunta isso toda Hora você começa o teste pelo que tá lá no seu plano de testes e que tá relacionado à atividade técnica que você pegou Então você vai escolher um cenário ou alguns cenários né E vai fazer a implementação então ó no nosso exemplo a gente vai começar aqui pelo primeiro cenário ó quando o cliente clicar em consultar e a data de entrada for anterior à data atual mais 5 dias deve exibir a mensagem a reserva deve ser feita com 5 dias de Antecedência então ó
Eu Já criei aqui o projeto de testes Já criei uma classe de testes também já deixei algumas coisas prontas Olha só Eh vamos esclarecer algumas coisas aqui né Eu criei esse projeto e com o ms Test e eu sempre recomendo usar ele porque eu acho que ele é mais simples ele é mais fácil de entender isso é uma questão de preferência não existe o melhor e nem o pior O melhor é aquele que você consegue usar com maestria então você pode Escolher o que você quiser só lembra que se você tiver acompanhando aqui usando X
unit ou n unit a dinâmica do teste é igualzinha é tudo igual só que o nome das coisas Talvez seja diferente né o nome dos atributos o nome dos métodos que você chama então muito cuidado aqui se você tiver usando outro Framework adapta pra sua realidade Beleza então ó vamos começar a criar os testes aqui ó o primeiro método eu já deixei nome ado aqui ó deveria retornar erro para Reserva com menos de 5 dias de antecedência Ah André mas esse nome é muito grande não é legal fazer um nome desse tamanho né cara não
precisa economizar o tamanho do nome dos métodos de teste é um erro muito comum também a galera fica abreviando coloca textos que não dá para entender direito não tem problema você usar abreviações se você quiser desde que todo mundo do seu time consiga entender o que você escreveu não adianta você escrever qualquer coisa da Sua cabeça aqui porque daí só você vai entender se forem termos muito comuns tem muitas empresas que por exemplo tem dicionários de dados para abreviações E aí se você tem esse padrão não tem problema nenhum n né mas se você não
tem muito cuidado isso aqui não vai ser invocado em lugar nenhum do seu código o importante é você bater o olho no teste e saber o que ele faz isso é uma coisa que faz muita diferença e colocar o nome do método e sendo descritivo né que ele Descreva o que ele faz ajuda demais a fazer testes melhores então só tem que tomar cuidado com isso aí porque às vezes você acha que funciona direito mas na verdade não funciona beleza ó vamos começar com o nosso teste aqui vamos começar e instanciando uma classe reserva vai
reserva é igual a newo reserva né para esse cenário que a gente tem aqui a gente tem que preencher a data de entrada e e aqui é enquanto eu vou digitando eu vou comentando uma Coisa que é muito interessante para você aí ó data de entrada como a gente tá falando aqui lá na regra que é a data atual a gente precisa usar uma data de referência se você colocar uma data Fixa aqui talvez funcione hoje mas amanhã o teste para de funcionar porque a nossa regra Ela tá validando aqui ó date time today Então
você tem que usar a mes mesma referência para fazer seu teste porque esse teste pode executar em qualquer dia em qualquer momento então Ele tem que funcionar todos os dias nesse caso aqui a gente vai usar a mesma referencia datetime P to né E aí nesse caso aqui desse teste especificamente é uma reserva com menos de 5 dias de antecedência Então o que a gente vai usar aqui é date time today ponto AD Days 4 ou seja eu tô 4 dias de antecedência né tô um dia aqui dentro do limite e aí depois eu vou
chamar aqui ó reserva ponto é válida para consultar que é o método que a gente tá testando Vou pegar o retorno aqui ó var resultado E aí depois o que eu preciso fazer é um assert is false ou seja tem que retornar um erro aqui então esse método precisa retornar falso Lembrando aqui que ele é um bulha né e e a gente vai verificar se ele retorna falso né simples assim ele só vai te devolver falso se realmente ele não é válido para consultar só que aí eh lá no nosso eh no nosso requisito ele
tá falando aqui ó que tem que retornar uma Mensagem né pelo menos pro usuário lá reserva deve ser feita com 5 dias de antecedência então para fazer isso a nossa validação Adiciona uma string nessa lista de erros aqui ó então é um erros é um campo que é um list de string e que vai devolver a a lista de mensagens de validação pra gente eh exibir elas na tela Então como tá dentro do requisito a gente também vai fazer uma validação para esse cara e como que a gente valida a gente vai pegar Exatamente a
mensagem que já foi definida aqui porque você fez esse trabalho com o usuário e a gente vai usar a mesma mensagem exatamente igual com ponto final inclusive aqui para fazer a nossa validação e aí a gente vai usar a classe assert aqui se você não conhece né teste unitário pô André nunca vi tô meio Perdidão relaxa que aqui é o básico então a classe assert ela tem vários métodos estáticos para fazer validação eh do dos nossos resultados Esperados né então eu tô aqui verificando se o meu método retornou falso e agora eu preciso ver se
a lista de mensagens retornou a mensagem que a gente quer então a gente vai usar o are equal que é é igual né aqui lembrando MS test né no x unit tem outro nome e não não lembro se no n unit é diferente eu acho que é igual e e a gente vai bater o texto da mensagem com o retorno da mensagem então uma lista a gente vai pegar a primeira Posição Opa aqui D reserva ponto erros e vamos pegar aqui o o primeiro índice da nossa lista deixa eu colocar mais para cima aqui para
você ver então a gente vai pegar aqui quando ele fizer a validação ele vai Adicionar mensagem na lista de erros e a gente tá validando se a lista de erros veio preenchida com a exata mensagem que a gente definiu junto com o usuário por isso que é importante lembra que eu falei Às vezes vem coisas que você não Tem detalhe suficiente ninguém fala da mensagem a gente já definiu com a mensagem lá no nosso plano de teste então lá no cenário de teste tem o texto exato da mensagem e é exatamente ele que a gente
vai validar aqui vamos rodar esse teste aqui para ver o que que vai acontecer vou dar um Run test aqui e olha só o teste rodou vamos ver aqui no test Explorer ó o teste falhou tá vendo que ele tá vermelhinho aqui ó vamos ver o que Aconteceu Ele tava esperando uma mensagem aqui a reserva deve ser feita com CCO dias de antecedência mas ele retornou informe a data de saída que que aconteceu aqui como a gente preencheu só a data de entrada as outras validações também aconteceram então Lembrando aqui que tem na classe reserva
né Tem várias eh validações e aí ele adicionou outras validações além do texto que a gente colocou então para eh evitar esse resultado Indesejável o que a gente vai fazer aqui é preencher a os outros Campos que estão faltando eu já deixei eles prontos aqui vou só copiar aqui para acelerar o processo então eu já tenho aqui a data de saída e tô preenchendo aqui né a data de entrada né e tô preenchendo aqui as outras datas agora vamos executar esse teste de novo e ver o que aconteceu se você quiser executar você pode executar
por aqui né como a gente viu aí dando um Run test ou se você preferir você também Pode vir aqui no test explor clicar com direito aqui e dar um Run beleza ele vai ter o mesmo efeito aqui você pode executar todos os testes aqui pelo test Explorer ou você pode executar o teste individualmente aqui direto no eh na linha aqui do do seu método de testes vamos executar agora pelo test Explorer para ver ó dei um Run e agora sim o teste passou como a gente preencheu os outros Campos que estavam faltando aí ficou
fácil né Agora vamos Pro próximo cenário então o nosso plano de testes lá para essa atividade ele já tem aqui eh três cenários de teste vamos pro próximo aqui ó quando o cliente clicarem consultar e a data de entrada for igual à data atual mais 5 dias deve exibir a mensagem quarto disponível faça sua reserva Então aqui tem uma diferença né antes era eh anterior à data atual mais 5 dias agora é igual a data atual então tem uma diferença aqui eh na premissa né na nossa regra e vai Ter uma diferença também no retorno
da mensagem nesse caso é quarto disponível Então vamos voltar aqui e vamos eh fazer esse teste também que que a gente vai fazer eu vou copiar esse teste aqui CRL ctrl v e só vou fazer uma alteração no nome Ó Vamos alterar o nome aqui para esse outro nome com CCO dias de antecedência Opa deveria retornar erro para a reserva Ou melhor aqui é não deveria né porque ele não vai retornar erro não deveria eh Retornar erro para a reserva com 5 dias de antecedência E aí ó vamos só trocar aqui esse cara para stru
porque ele não deve retornar erro né ele deve indicar que a reserva é válida e vamos executar esse teste aqui para ver o que que acontece E aí ó o teste rodou mas ele quebrou agora o visual Studio já mostrou aqui ó já atualizou e mostrou o retorno no Intel Sens e aqui no editor né Olha só o teste Quebrou e ele retornou aqui ó vou deixa eu mostrar aqui no Test no test Explorer porque daí ele fica um pouquinho mais fácil de ver olha só assert true is failed né is true failed é por
que isso quebrou é óbvio que vai quebrar Porque eu só copiei o método e troquei o assert eu quis e mostrar isso aqui para você é só para você entender uma coisa no seu dia a dia aí e quando a gente tá trabalhando com teste é muito comum na nossa Dinâmica de trabalho aqui fazer isso você cria um teste e depois quando você vai criar mais testes você simplesmente vai lá copia o o código do teste anterior e depois eh faz uma alteração no nome altera alguma coisinha ali então tem que tomar muito cuidado eu
eu eh fiz essa demonstração aqui só para te trazer uma outra dica do campo de batalha cuidado na hora de você copiar seus métodos de teste e crie o hábito de sempre quebrar um teste antes de fazer Ele passar para evitar que você tenha resultados indesejados é muito comum você vir aqui na pressa sair copiando altera tudo que você tem certeza que tá certo e o teste test passa de primeira aí como o teste passou você relaxa e fala cara é beleza o teste passou vamos pra próxima aí que não preciso alterar mais nada e
às vezes você só Copiou o teste não alterou nada e ele já deu erro então muito cuidado na hora de copiar e colar para não deixar as coisas fugirem Do seu controle é muito fácil isso acontecer então crie o hábito de sempre quebrar o seu teste antes de fazer ele funcionar às vezes só o f f de você vir aqui e e alterar um assert de um jeito idiota já resolve o problema porque você vai ter que olhar você vai ter que ver se tá tudo certo para fazer passar Então é só um jeito aqui
de você e conseguir e se policiar e não criar hábitos ruins de teste beleza e aí ó aqui o que a gente vai fazer Vamos Alterar a nossa quantidade de dias aqui para C E como ele vai retornar true eu sei que quando é true aqui pela nossa reserva Nossa classe reserva é porque erros P count é igual a zero Então sempre que ele retornar true a quantidade de erros lá vai ser zero Então não preciso fazer essa validação né Deixa eu rodar aqui só para você ver olha só teste rodou aqui ó e passou
também Então nesse caso eu não preciso Fazer um teste da mensagem André mas lá no cenário de teste ele fala que precisa ter a mensagem porque que no primeiro caso você testou e no segundo caso você não quis testar porque dentro da nossa dinâmica aqui dentro do nosso código essa mensagem do quarto disponível tá aqui na Controller mas olha só eu não alterei a Controller lembra que a premissa aqui é que esse código já tava em produção então independentemente do fato Do da mensagem estar aqui talvez não se coisa mais legal do mundo eu não
fiz alteração nenhuma na home Controller então eu não preciso fazer teste aqui o que tá rolando aqui nessa parte do código em teoria já funciona porque tá em produção pode ser que esteja errado e você descubra isso depois mas por hora você tem que considerar que tá certo Por que que isso é importante porque se você não fez alteração na controler não precisa testar se você entender esse Conceito você vai entender que não precisa fazer teste no sistema todo a todo momento e outra às vezes você vai querer fazer um teste aqui e vai querer
refaturar você pode querer mexer para deixar o código melhor o próximo passo vai falar sobre isso mas no momento enquanto você tá fazendo teste unitário aqui da sua alteração Essa mensagem não é relevante O que é relevante é saber se o código chegou até aqui se ele passou aqui do é válida para consultar é o Suficiente para nós nesse momento então como eu sei que erros erros pon count é igual a zero para retornar true eu não preciso fazer um teste redundante aqui por exemplo e verificar se retornou zero eh um count de zero aqui
na quantidade de erros porque isso já aconteceu antes Então veja que a gente tá eh analisando o código para chegar num teste que seja mais eficiente que não tenha duplicidades que não tem necessidade de fazer Às vezes você começa a fazer um um Monte de teste um monte de assert dentro do do mesmo método e e e tá fazendo um monte de teste inútil não sabe porquê então tô te mostrando um exemplo aqui para você entender que o escopo da sua alteração ele tem que ser sempre limitado né o escopo do seu teste da sua
alteração né ele tem que ser limitado àquilo que você tá fazendo é por isso que você não tem tempo para testar porque você quer fazer um monte de coisa ao mesmo tempo e aí cara às vezes dá mas Às vezes não dá aí acaba seu tempo e você não Testa o que precisa Então a nossa alteração aqui o nosso teste tá cobrindo só o que precisa para finalizar o que a gente faria é repetir o mesmo esquema só que pro próximo cenário de teste né e o próximo cenário de teste aqui ó quando o cliente
clicar em consultar e a data de entrada for posterior a data atual mais 5 dias deve exibir a mensagem quarto disponível então a gente e passou uma regra aqui Que era o igual agora a gente vai mandar uma data superior né E nesse caso aqui é só a gente alterar o parâmetro para se dias eu vou trazer aqui um teste que já tá pronto só para acelerar a coisa aqui ó coloquei aqui o teste né deveria indicar que é válida para consulta com mais de 5 dias de antecedência vou deixar até aqui e no mesmo
padrão só pra gente manter aqui ó não deveria retornar erro para a Reserva com mais de 5 dias de antecedência vamos deixar o nome do método aqui padronizado importante também eh você sempre manter o padrão das coisas você seguiu uma linha de raciocínio continua mantendo porque senão você vai ler os testes eles não fazem muito sentido eh são detalhes que às vezes parecem coisas eh muito simplas né às vezes parece que são eh muito são detalhes muito pequenos mas que fazem muita diferença no seu dia a Dia então toma esse cuidado aí eu tô repetindo
a dinâmica aqui eh sem quebrar o teste né porque eu já expliquei como funcionaria antes então só vou rodar o teste aqui mas você lembra do que eu falei faz o teste quebrar primeiro e depois você faz ele passar como eu já tinha falado disso eu vou adiantar a coisa aqui é só para você e pra gente não perder tempo com mais detalhes né Então você já entendeu Como é a dinâmica faz quebrar e depois você Faz passar ó o teste passou e o que que eu fiz aqui ó eu coloquei seis né coloquei AD
Day então o nosso AD Day seis né então o nosso teste aqui era quando a data de entrada for posterior a data atual mais 5 dias né aqui e eu vou te passar uma dica extra para você usar aí no seu dia a dia Principalmente quando você for elaborar o cenário de teste eh tem uma técnica que você sempre pode aplicar e que cara ajuda demais para você eh fazer Validações desse tipo quando você precisa validar eh ranges de valores né intervalos de valores dentro do dos seus métodos aí isso vai valer para números vai
valer para datas vai valer para qualquer coisa que tem um um intervalo de teste que você precisa testar a regra que eu sem uso aqui é a regra do acima igual e abaixo como que funciona isso você vai sempre criar um teste você no nosso exemplo aqui né é a data atual mais 5 dias para não ter que ficar Fazendo 300 testes de data atual data mais um dia data mais dois dias data mais TR dias e depois o o o limite acima né ah data mais 6 dias mais 7+ 8 + 9 essa esses
valores eles vão dar o mesmo resultado então para diminuir a quantidade de teste que você precisa fazer você usa essa regra que que você vai fazer você vai gerar sempre um valor acima um igual e um abaixo do limite que você quer testar foi o que eu fiz aqui no nosso exemplo no nosso exemplo são Cinco dias então eu tenho uma data acima né Um Valor acima seis dias eu tenho um valor igual que é CCO dias e um valor que é abaixo quro dias então é a regra do acima igual e abaixo essa regra
aí vai te ajudar em testes desse tipo né vai te ajudar a testar todas as condições que você precisa você não precisa fazer 300 milhões de teste três testes resolvem o seu problema cima igual e abaixo começa a aplicar essa dica aí que cara vai te ajudar demais no Seu dia a dia aí como todos os nossos testes unitários passaram agora a gente finalizou a nossa alteração e para garantir Vamos fazer um teste manual só para ver se com o sistema rodando as coisas também funcionam aí é só executar o que tá lá escrito no
plano de testes e já era atividade finalizada vamos executar para ver ó vou rodar a aplicação aqui e aí vamos voltar aqui pro nosso teste ó primeiro cenário quando o cliente clicar em consultar e a Data de entrada for anterior à data atual mais 5 dias deve exibir a mensagem a reserva deve ser feita com cinco dias de antecedência vamos ver se ele faz isso então Ó tem que ser com CCO dias de antecedência deixa eu esticar a telinha aqui e vamos testar ó a data de entrada então tem que ser 5 dias de antecedência
né se hoje é dia 23 é o cinco dias de antecedência vai ser a reserva pro dia 28 se eu fizer até o dia 28 eu em teoria deveria conseguir vamos rodar o primeiro Cenário anterior a 5 dias então vamos colocar aqui é dia 27 vamos preencher aqui a data de saída Vou colocar aqui dia 7/02 aí vou preencher adulto e criança com qualquer coisa só para passar pela validação e vamos consultar olha aí ó a reserva deve ser feita com 5 dias de antecedência E aí se eu colocar qualquer data anterior aqui ó até
hoje por exemplo ele vai exibir a mesma mensagem Reserva deve ser feita com 5 dias de antecedência segundo cenário o primeiro passou quando o cliente clicar em consultar e a data de entrada for igual à data atual mais 5 dias deve exibir a mensagem quarto disponível faça sua reserva vamos ver se isso funciona então a data igual a 5 dias é dia 28 vamos consultar e olha aí quarto disponível faça sua reserva segundo cenário passou terceiro cenário quando o cliente clicar em consultar e a data de entrada for Posterior à data atual mais 5 dias
deve exibir a mensagem quarto disponível faça sua reserva aqui é diferença que é posterior não é igual vamos voltar lá e executar para ver posterior vamos pegar qualquer data aqui vamos pegar o limite para ver né dia 29 quarto disponível ó a mensagem não mudou vamos colocar a data errada aqui de novo ó a reserva deve ser feita com c dias de antecedência Beleza agora vamos pegar aqui o dia 29 só para ter certeza quarto disponível faça sua Reserva Então veja que agora que a gente já fez todos os as alterações no código né agora
que a gente eh já repassou todos os cenários de teste a gente tem certeza que todo o nosso trabalho ele valeu a pena porque tudo que a gente precisava testar a gente testou tudo que foi combinado com o usuário inclusive as mensagens de texto elas estão corretas e batem exatamente com que foi combinado tá tudo do jeitinho que você combinou com o usuário desse jeito aqui como que Você vai ter bug não tem jeito né se tá tudo combinado e você testou Com certeza é vai passar pelo crive do usuário vai passar lá em produção
100 bugs e o último passo aqui é refaturar agora que o seu código ele tá pronto ele tá devidamente testado Tá tudo funcionando você tem a opção de melhorar aquelas partes que não tão muito boas e AG agora que você já tem teste unitário você consegue facilmente mover as coisas de lugar sem remorço Porque qualquer Alteração indevida vai quebrar os seus testes porque você já fez baseado num plano de teste você já fez análise é só você revisar para ver se realmente faz sentido ter quebrado ou se você fez alguma bobagem é como eu sempre
digo se você quer fazer refectory ou você tem teste Ou você tem coragem e dependendo de como tá o código eh tá o tal vez você tenha que fazer esse refectory aí antes para poder fazer algum teste unitário dependendo do nível de acoplamento Dependente de várias coisas aí nesse caso só vai precisar de coragem que não tem muito o que fazer nessa etapa de ref Aqui é onde o seu conhecimento sobre arquitetura ele começa a fazer diferença então Lembrando que eu falei lá na aula dois que não adianta você só sair picotando seus métodos grandes
e métodos pequenos né seu código ele precisa ser coeso as coisas precisam fazer sentido dentro do código E aí para te ajudar a ter mais sentido né dar mais sentido pro Seu código né tem dois conceitos que não podem faltar no repertório de um Dev que quer fazer teste unitário primeiro deles é modelagem de classes saber separar limite responsabilidade de cada classe e método na prática daquilo que a gente falou do exemplo do apartamento na aula dois aqui você pode estudar o s do som Sid por exemplo que é o princípio de responsabilidade única o
single responsibility principle ajuda demais para você entender e que as coisas Começam num lugar e terminam em outro esse é um conceito que parece ser muito simples mas na prática demora bastante tempo para entender você precisa mexer você precisa ter contato eu conheço muitos deves experientes que não tem habilidade de entender o princípio de responsabilidade única Eles não conseguem colocar em prática eles fazem classes gigantes fazem métodos gigantes isso é muito comum então estude o princípio de responsabilidade única um Outro conceito que é importante Se você quer fazer teste unitário é injeção de dependência que
é uma implementação de um design pattern que é muito usada para teste unitário teste de integração por causa dos mocs né É graças a a injeção de dependência que você vai conseguir usar Moc no seu código eu sei que tem vários outros conceitos para você aprender tem muita coisa ali mas se você só focar nesses dois o s do Solid e a injeção de dependência cara já Vai dar para você começar tudo que você viva aqui com o pé direito e aí esses últimos três passos aí que é programar fazer teste unitário e refaturar eles
vão se repetir até você considerar que o seu trabalho terminou e que ele pode ser entregue é claro que o ideal é sempre entregar o código com a melhor qualidade possível mas tem algumas ocasiões onde você não vai conseguir fazer tudo que você gostaria no nosso exemplo aqui as validações elas estão todas na nossa Classe reserva e você viu que ele chama aqui na home Controller Mas na vida real Pode ser que o seu código não seja assim Pode ser que ele esteja desse jeito aqui ó com as validações as mesmas validações que tem lá
só que tudo diretamente na Controller Quantas vezes você já não viu esse código por aí no código que você mexe todo dia isso aqui é muito comum né em vez de estar separado numa classe de negócio tá espalhado pelo código aí e aí talvez você não consiga fazer essa Melhoria na mesma atividade Mas lembra que o seu tempo é limitado você não tem que fazer tudo ao mesmo tempo segue sempre o mantra faça o melhor que você pode com o tempo que você tem e aí você sempre vai ter alguma uma coisa boa para entregar
com pelo menos o mínimo de qualidade que você conseguiu fazer e aí que que você achou não foi bem mais fácil fazer os testes desse jeito com o trabalho organizado num processo onde você faz uma coisa Primeiro e o próximo passo ele fica mais fácil porque ele é um complemento do Passo anterior não é uma questão de você convencer o seu chefe que precisa de mais tempo para fazer as coisas do jeito certo é só organizar o seu trabalho as coisas que você já faz hoje e direcionar o seu esforço para aquilo que traz mais
resultado que vai efetivamente melhorar a qualidade da sua entrega e era isso que eu queria te mostrar aqui na jornada Desenvolver testes que existe um caminho que tem como sair dessa roda do rato de entregar código ruim se estressar com bug reclamar do trabalho e agora que eu te mostrei o caminho você tem duas opções você pode seguir sozinho ou sozinha aí nessa jornada tentar aplicar tudo que você aprendeu aqui por conta própria e dá para fazer porque eu fiz isso sozinho só que demorou 13 anos para sair do lugar agora se você quiser ir
além se Você quiser acelerar esse processo ter um direcionamento você pode entrar na próxima turma do desenvolver testes o curso que eu criei PR ajudar os deves a subir de nível na carreira entregando código de qualidadea vai abrir Naima segunda-feir e vai teras condiões aí bem especiais mas antes de falar sobre essas condições deixa eu te apresentar o conteúdo do curso você ent aí como que ele funcion Você vai aprend os fundamentos do teste toda a base que você precisa saber antes de começar o raciocínio por trás dos Testes conceitos importantes que fazem a diferença
no trabalho de Dev e outras coisas também que ninguém fala por aí tem muito Dev experiente que acha que já sabe essas coisas e depois que a gente conversa percebe que comete vários erros porque não sabe os fundamentos e você vai ver que tem vários bloqueios que te atrapalham na Hora de testar e muitos deles fazem a coisa parecer muito mais difícil do que ela é de verdade e se você tá na lista dos que não sabem nada sobre teste Não se preocupa também porque eu vou te colocar no jogo aqui você também vai aprender
sobre análise de requisitos aprender a garantir que o seu código resolve o problema do usuário como você já viu aí na jornada o plano de testes é o guia que vai te direcionar até o final da entrega você vai aprender o passo a Passo para criar um plano de testes a partir de de qualquer requisito que te entregarem de um texto super mega detalhado até um postite aí com duas linhas Além disso você também vai aprender a trazer o cliente para mais perto do processo de desenvolvimento que é para cortar aquelas discussões sobre bug sobre
pedir maçã entregar banana aquelas coisas aí que você já sabe como é e que sempre acontecem e que só serve aí para gerar estresse no nosso dia a Dia você vai aprender também a fazer uma análise mais eficiente que evita bugs elimina retrabalho e resolve os problemas do usuário chega de sair escrevendo código sem saber direito para onde você vai você vai aprender a direcionar o seu esforço pro lugar certo desde o início da atividade e tem um módulo dedicado só paraa arquitetura de software lá eu vou te passar todos os conceitos da arquitetura que
você precisa saber para escrever um código Mais simples e mais fácil de end você vai aprender sobre design patterns vai aprender modelagem de classes boas práticas tudo isso com exemplos não é só com diagrama com desenho não e não se preocupa porque eu também não quero encher a sua cabeça com um monte de conceitos mirabolantes que você nunca vai usar no dia a dia eu filtrei tudo que é essencial para criar um código fácil de manter para acelerar a criação dos Testes unitários e ajudar a lidar Com um código complexo você não precisa perder tempo
pesquisando um monte de coisa aí que só vai te confundir Vem comigo que eu já trabalhei aí para facilitar sua vida e é claro que o curso tem um módulo só sobre teste unitário onde você vai aprender a criar um projeto de testes desde o início e como criar os testes de fato a lá a gente vai falar de asserts exceptions Mox cobertura de código como que executa como que debuga se você ficou perdido ou Perd da aí nessa aula de hoje não se preocupa porque no desenvolver testes eu explico tudo com bastante detalhe todos
os exemplos e os módulos técnicos do curso eles são em CP E aí eu já quero deixar isso bem claro aqui para evitar confusões se você programa em Java por exemplo tem várias implementações ali de teste unitário que são muito parecidas com o csharp então dá para aproveitar bastante conteúdo Inclusive tem vários alunos do desenvolver testes que Programa em outras linguagens que não é o csharp e eles acompanham as aulas do mesmo jeito mas como eu gosto de ser sempre bem transparente com você aqui eu tô reforçando bastante esse ponto que o conteúdo é escrito
em CP assim não tem confusão e o desenvolver testes também tem um módulo prático né um projeto prático para você conectar todos os conceitos e aplicar tudo que você aprendeu e não é só código aqui não a gente vai começar lá da análise de Requisitos até chegar no código passando por todos os passos pelos fundamentos pelos conceitos de arquitetura também que é para você ver na prática mesmo de forma bem didática para você conseguir levar esse conhecimento pro seu dia a dia no trabalho e por último tem um módulo só para falar de código legado
lá você vai descobrir como começar os testes em um software que não tem teste nenhum você vai aprender a decidir quando precisa refaturar Quando vale a Pena refaturar e quando não vale como levar essas ideias pro time como convencer o seu chefe tudo experiência de campo de batalha mesmo coisas que eu faço no meu dia a dia não é um monte de teoria que eu estudei e achei bacana se você tá aí se garf com legado você corrige uma coisa e quebra outra em produção e você nunca consegue tempo para testar nada direito esse módulo
aí ele vai te ajudar muito agora um pouco sobre o acesso né o acesso entrega do Curso o desenvolver testes é um curso 100% online e gravado assim que a sua compra for aprovada você vai receber um e-mail com seu acesso e todas as aulas vão estar lá disponíveis para você e aí você pode estudar a hora que você quiser e no ritmo que você quiser também importante destacar o seu acesso ele vai ficar disponível por um ano Ah mas por que não acesso vitalício como tem outra as plataformas aí porque se eu falar que
eu consigo te garantir um Acesso vitalício é mentira da minha parte não tem como eu garantir que alguma coisa vai durar para sempre e se não isso não é uma crítica quem oferece acesso vitalício não tá eu só tô sendo bem sincero e transparente com você não vou te prometer alguma coisa que eventualmente não tem como eu cumprir então o acesso ao curso é garantido por um ano e além de todo esse conteúdo das aulas tem três bônus para quem se matricular nessa turma primeiro bônus é Um mini curso de testes funcionais com csharp celenium
no desenvolver testes eu não ensino a fazer teste funcional mas ele é um ótimo parceiro dos testes unitários para garantir a qualidade da sua entrega nesse minicurso você vai entender como funciona a dinâmica do teste funcional que é um pouco diferente ali do teste unitário e eu também vou te mostrar como criar os comandos Como navegar pelas telas como fazer validações tudo ali conectado aos Conceitos do desenvolver testes provavelmente é o curso mais rápido mais prático e mais direto ao ponto que você vai encontrar sobre o assunto e o segundo bônus quatro plantões de dúvida
online e ao vivo abertos somente pros alunos onde você vai poder tirar suas dúvidas diretamente comigo ali na hora mesmo não PR ficar remoendo os problemas se matando sozinho ou sozinha aí no momento que você entrar nessa mentoria você cont meio nes plantões E portim você vai comunidade de alunos do desenvolver testes você vai pod tiar suasvidas vaiar ideia comigo e tambm com outos Dev estão na mesma pegada que você o ambiente ele é sempre fundamental para acelerar uma mudança se você quer parar deber não adianta pro bar todo dia certo se você quer entregar
código de qualidade precisa tá num lugar onde tem mais pessoas que tem mesma vibe que estão com mesmo objetivo não temo jeito esses três bí eles são garantidos Você faz a matrícula e vai teresso a eles porém porém essa turma aí ela ainda vai ter mais dois bônus especiais só PR quem se matricular no primeiro dia Beleza se você se matricular nos outros dias aí já era não vai ter acesso a esses bônus então ó anota aí Primeiro bônus uma consultoria particular de 1:20 onine e ao vivo diretamente comigo e essa aí não é uma
conversa solta e aleatória o objetivo é te destravar Fazer você ir pra ação e pro mundo real mesmo porque tem muito aluno que entra no curso assiste as aulas E não coloca nada em prática fica lá só estudando e aí acha que de alguma forma O resultado vai vi Quantas vezes você já não fez isso com outros cursos e eu sei que não é por mal não tô falando que você tá fazendo bobagem é porque acontece com todo mundo até comigo às vezes você só precisa ter um direcion Inicial alguém que te fale Por onde
começar qual caminho que é melhor seguir por isso que esse bônus ele é tão especial porque ele tem o poder de te tirar da zona de conforto e te colocar em Ação é muito mais fácil conseguir resultados depois de ter uma consultoria dessas e aí como que vai funcionar depois que essa turma fechar você vai ter 20 dias para agendar sua sessão Então vou disponibilizar um calendário com datas e horários disponíveis E aí Você só acessa e faz o seu agendamento então se você entrar na turma e for elegível ao bônus vai chegar um e-mail
na sua caixa com todos os detalhes tudo bem explicadinho lá esse é o primeiro bônus o segundo bônus especial para quem se matricular no primeiro dia é uma extensão de um ano no seu acesso ao desenvolver testes o acesso pão é de um ano como eu já falei antes então se você ganhar esse bônus vai chegar um e-mail também com a confirmação e você vai ter Dois anos de acesso incluindo todas as atualizações futuras e conteúdos Extra dentro desse período aí bom se você tava na dúvida aí se você entra ou não nessa turma do
desenvolver test acho que aí já é um belo incentivo né esses bônus especiais aí e agora você deve estar aí se perguntando pô se desenvolver testes resolve tudo esse problema aí não deve ser barato né quanto que custa no nosso mercado de tecnologia tem várias plataformas e escolas que Oferecem muitos cursos com preço muito baixo às vezes é um curso por R 25 R 30 ou às vezes é uma assinatura anual ali com esse mesmo preço só que com valor mensal e obviamente é um preço bem atrativo o grande problema é que você precisa garimpar
muito para achar um curso bom de verdade é quase que um trabalho de curadoria eu mesmo já comprei vários desses cursos aí e tem coisas boas mas também tem muitos cursos superficiais Que falam as mesmas coisas principalmente quando o assunto é teste unitário você compra um curso e a galera só fala de acert mck E você já viu aqui na jornada que só isso não te ajuda o desenvolver testes é diferente ele te ensina a olhar para vários pontos do seu trabalho que influenciam na qualidade do código e ele te prepara pro campo de batalha
porque é um método que saiu de lá ele foi criado e aplicado várias vezes no mundo real mesmo em Situações reais não é paraa situação perfeita onde o código é perfeito e todas as pessoas envolvidas são perfeitas Então pensa aí quanto você cobraria para fazer isso quanto que você cobraria para ensinar a entregar um código de qualidade no seu trabalho de um jeito simples e com direcionamento se lá no começo da minha carreira eu pudesse ver o futuro e eu soubesse que eu ia ficar aí 13 anos Pastando para melhorar a qualidade do meu código
cara eu investiria nisso sem pensar duas vezes você também não investiria nesse caso quem S consciência quer ficar 13 anos patinando sem sair do lugar e olha quanta coisa você vai levar nessa turma o preço original do desenvolver testes sozinho é de R 2000 como eu já disse é um conhecimento bem diferente do que você vai achar por aí principalmente a parte sobre análise De requisitos que já não é um conteúdo muito comum e quando você acha alguma coisa sobre isso é sempre a mesma coisa tudo isso aqui é baseado em experiência de campo de
batalha que eu aplico no meu dia a dia que gera resultado não são coisas que eu li num livro conhecimento especializado nesse nível tende a ser mais caro mesmo não tem jeito só o curso aí são R 2000 só que você não vai levar só o curso tem os bônus também o mini Curso de testes vai ser vendida a parte no futuro e vai custar r$ 400 e tem os plantões de dúvida também os últimos encontros eles duraram mais ou menos 2 horas cada um então já são mais de 8 horas de conteúdo aí nesse
pacote se fosse uma empresa um atendimento em grupo eh não ia sair por menos de R 1000 por pessoa nesse modelo aí e os bônus exclusivos do primeiro dia a renovação da acesso do desenvolver testes ela não é gratuita Hoje os alunos Que quiserem continuar acessando as aulas e ter acesso a todas as atualizações depois de um ano eles têm que pagar R 400 para renovar por mais um ano a consultoria particular então não tem nem preço porque é um negócio muito exclusivo para eu disponibilizar no mercado eu teria que vender um preço muito alto
porque não é uma coisa que eu consigo escalar vender em quantidade né por isso que el só fica disponível para quem entra no primeiro Dia somando tudo isso o preço final do desenvolver testes seria de R 3.800 além da Consultoria particular que eu nem coloquei o preço aí porque ela não tá vendo né porém se você entrar nessa turma você vai pagar 12 parcelas de 119,50 no cartão ou r97 se for a vi e eu sei que ainda tem muita gente que vai falar ah mas Esso aí é muito caro e de Verdade caro é
ficar correndo atrás de bug em produção com seu chefe no seu cangote caro é você perder uma oportunidade de emprego porque você nem sabe direito o que que é um teste unitário caro é ficar se matando de estudar para ver um monte de dev na empresa sendo promovida e recebendo aumento porque o código deles tem mais qualidade que o seu isso que é caro e fala a verdade 119,50 por mês nem é tanta grana assim não dá nem para comprar um headset Legal ou um mouse de qualidade um bom teclado mecânico tem capinha de celular
que custa mais do que isso com r$ 950 mal dá para pagar a conta do rest para duas pessoas ou a conta do bar no final de semana e outra 11950 por mês se você dividir dá R 4 por dia cara fazendo uma pequena economia de R 4 por dia você faz um investimento Gigante na sua carreira e até na sua vida pessoal também porque o estress do nosso trabalho é pesado né Pensa bem quanto vale o seu sossego de não ter que ouvir o usuário ficar reclamando na sua orelha cobrando toda hora quanto vale
a tranquilidade de publicar o seu código em produção na sexta-feira e saber que não vão te ligar no sábado por causa de Bug Quanto que vale uma boa noite de sono quando você sabe que entregou um código bem feito da melhor forma possível sabe quanto que vale vale R 4 por dia para de usar seu dinheiro em coisas que não te dão resultado investe na sua carreira você tá literalmente a um passo de subir de nível é um favor que você faz pro seu eu do futuro e esse aí é o preço dessa turma que
eu já tô mantendo Já faz um tempinho Aí a cada nova Turma o curso Ele vai indo e uma hora o preço vai ter que evoluir junto então aproveita porque no futuro com certeza esse preço aí vai aumentar e por último vamos falar sobre garantia São 30 dias de garantia Incondicional o que que isso significa se por qualquer motivo você se arrepender e não quiser mais o curso dentro de 30 dias você pode pedir o seu dinheiro de volta não tem discussão pediu já era e dentro desses 30 dias Você ainda pode assistir todas as
aulas do curso colocar em prática no trabalho e ainda tirar suas dúvidas nos plantões se você achou que não vale a pena pede o seu dinheiro de volta dentro dos 30 dias simples assim e se você ainda tá em dúvida será que eu compro Será que eu não compro eu vou botar o meu na reta aqui ó porque eu confio nesse método eu sei que o desenvolver testes ele tem o potencial de elevar o nível da sua carreira assim como elevou o meu e De vários alunos eu vou adicionar aqui uma garantia condicional uma garantia
Extra passando seus 30 dias de garantia Incondicional eu vou adicionar aqui mais 60 dias ou seja um total de 90 dias se nesses 90 dias você assistiu e fez um resumo de todas as aulas fez todos os íos práticos apareceu nos quatro plantões para tirar dúvida se você realmente tentou aplicar a metodologia do desenvolver testes lá no seu trabalho no seu dia a dia e mesmo assim você não Conseguiu nenhum resultado não conseguiu fazer nenhum teste não conseguiu fazer entrega sem bugs não teve nenhum feedback positivo nem do usuário e nem do seu chefe você
pode me mandar um e-mail pedindo para acionar a garantia condicional E aí eu vou Checar e validar todos esses pré-requisitos que é por isso que é uma garantia condicional e se tudo tiver certo eu vou sentar com você pra gente entender Juntos o que que aconteceu de errado e aí a gente vai ver como que eu posso te ajudar e nós vamos criar um plano de trabalho customizado só para você e aí você vai ter mais 90 dias para trabalhar nesse plano implementar tudo que a a gente planejou se Depois desses 90 dias adicionais onde
você trabalhou em todos os pontos desse plano ainda assim você não conseguiu nenhum resultado e ainda se sente insatisfeito ou insatisfeita aí Com desenvolver testes eu devolvo dinheiro da sua compra e ainda adiciono R 500 do meu bolso Esse é o nível do meu comprometimento com você e com o seu resultado só tem uma coisa aí que precisa ficar bem clara eu não posso fazer a sua parte nesse negócio os seu 50% são entrar nessa turma estudar colocar em prática e seguir os passos do desenvolver testes os meus 50% são te entregar o curso os
Bônus te ajudar nos plantões na comunidade te dar o suporte ali que você precisa e eu vou fazer de tudo para te entregar 150% desses meus 50% mas eu preciso que você faça sua parte o seu 50% porque Infelizmente essa parte aí eu não consigo fazer por você se você quer subir na carreira de Dev entregando código de qualidade que aprender o meu método e ter o meu acompanhamento nessa sua jornada as Inscrições pra próxima turma do desenvolver testes vão abrir na segunda-feira às 8 da manhã Fica de olho aí no seu e-mail Fica de
olho lá no grupo do WhatsApp que eu vou te avisar por lá assim que tudo tiver liberado e eu espero que você tenha gostado da jornada desenvolver testes eu espero que tudo que você aprendeu nessas três aulas tenha mudado a sua visão sobre qualidade nem que seja só um pouquinho e que esse conhecimento realmente te ajude no seu Dia a dia para que de alguma forma você consiga subir de nível na carreira e você pode continuar sozinho ou sozinha aí na sua busca talvez também demore 13 anos para começar a ter resultado Mas se você
quiser acelerar e ter a minha ajuda nessa empreitada aí eu te vejo na segunda-feira na próxima turma do desenvolver testes beleza um grande abraço e até lá m