e você sabe a diferença entre teste unitários testes de integração é dito que a gente vai falar aqui nesse vídeo eu ainda vou te mostrar como que você deveria usar um ou outro olha só o claudson filho da nuvem você tá na playlist sobre testes automatizados último vídeo e falou sobre a importância porque os testes automatizados são tão importantes no mercado de trabalho vou deixar o link aqui na descrição e hoje a gente vai falar dos diferentes tipos de testes que existem que você pode fazer para trazer valor para sua empresa sobre valor a gente
vai ver que cada teste em um valor diferente e também um custo diferente é a forma mais fácil de visualizar essas coisas é pelo que a gente é pelo que a gente chama de pirâmide de teste esse conceito foi cunhado ele começou no livro de um autor chamado mike cohen se eu não me engano e ele foi evoluindo durante é mas basicamente hoje a gente pode dividir os nossos testes todos nossos tipos de teste em uma pirâmide de três partes eu poderia começar a explicar os testes pela base da pirâmide mas vou começar pelo topo
que é o mais fácil de entender o primeiro tipo de teste que a gente tem no mercado de trabalho são os testes end-to-end ou teste de ponta a ponta e eles ficam lá no topo dessa pirâmide nesse tipo de teste a gente só quer simular um utilizador real do nosso produto por isso que ele é fácil de entender que eu tenho uma página de login seu trabalho com site lá nossa venda de coxinhas online eu tenho uma página de login eu posso criar um teste automatizado um teste instruem que vai simular uma pessoa que vai
navegar até essa página preencher o formulário e apertar no botão de login depois você vai esperar um tempinho e ele vai verificar de alguma forma e foi feito com sucesso ou não esse é um tipo de teste end-to-end de ponta a ponta e por que esse nome de ponta a ponta você tá realmente testando o fluxo inteiro da sua aplicação desde lá do front-end da primeira ponta né desde que o utilizador vê na tela ateu mais fundo do back-end se você apertou naquele botão de login provavelmente se produziu uma rica quest eu acho que de
ver esse daqui para cá né uma ri quest que provavelmente vai a sessão base das um banco de dados ou talvez um teste ou talvez um microsserviço vai e aí você precisa ter isso tudo tpas e aí a resposta disso vai voltar lá para o sistema e aí você vai garantir que todo o fluxo da aplicação funciona 10 uma ponta até ao como eu falei anteriormente cada tipo de teste automatizado traz um valor e tem um custo diferente para empresa esse tipo de teste teste de ponta a ponta trás muito valor para a empresa eu
vou representar aqui essa coisa do valor essa coisa do custo com esses emojis aí o 3-estrelas pode custar de 1 a 3 estrelas o valor e de 1 a 3 dinheiros né para o custo e esse tipo de teste da três estrelas dá muito valor para gente quando está desenvolvendo sorte porque porque a gente estava lidando aplicação inteira a gente tá quando a gente carrega no botão com a mente clica no botão a gente tá chegando tudo front-end back-end as consultas na base de dados o cash enfim tudo então dá um valor muito grande para
gente lembra aquela soube segurança ele dá muita segurança para gente os testes são sobre segurança falei isso no último vídeo e por outro lado esse tipo de teste é muito caro o mais caro que a gente vai ver aqui nesse vídeo nem tudo é perfeito na computação né ele das muito valor mas ele é muito caro e por que que ele é muito caro ele custa três dinheiros porque ele é tão caro porque para conseguir testar esse fluxo inteiro de ponta a ponta quer dizer que você precisa ter uma aplicação rodando em algum ambiente aí
de teste você pode colocar no doc ele é preciso da aplicação rodando essa aplicação precisa ter tudo necessário para que esse teste pode ser que está ter a base dado já com as tabelas talvez com alguns valores sabe que atualmente tem um cash eu preciso de um micro serviço vai precisar desse micro serviço ou seja é caro tanto financeiramente porque esses recursos custam dinheiro quanto é caro também para manter esses testes rodando como um teste de se quebra é muito difícil identificar o problema porque porque são infinitas possibilidades eu posso ter o problema no teste
ensino código eu posso um problema no código beck and eu posso informar no código fonte em ti eu posso ter problema na base de idade eu posso formando microsserviço é muito complicado então a gente tem que pensar com sabedoria quando a gente vai usar esse tipo de teste se você conhece alguém interessado em testes unitários e teste de integração testes em geral manda esse vídeo para essa pessoa quem sabe ele não chega mais ela não chega mais e faz parte dessa comunidade que a gente tá criando aqui no canal agora que a gente falou sobre
o topo da pirâmide a gente poderia falar do meio desse um pouquinho mas eu vou pular esse e-mail e eu vou para base da pirâmide para falar dos testes unitários os famosos dessas unitários diferente dos testes de ponta a ponta que estão validando uma fita inteira da nossa aplicação os testes unitários estão interessados em testar uma unidade pequena do nosso sistema é uma unidade de código pequeni normalmente essa unidade pequena é uma função ou me eu costumo falar que taxas unitárias são testes de algoritmo e a basicamente isso o que que a gente quer testar
nessa função nesse método que a gente tem um método por exemplo que recebe uma lista de produtos uma lista de coxinha assada que utilizado resolveu comprar e ele essa função tem que retornar o valor total que vai ser da compra né recebe a lista de coxinhas cálculo retorno o assoma o cálculo né total o que eu preciso testar é esse algoritmo por exemplo eu vou ter um teste que vai me garantir aqui se eu passar uma lista vazia não tem nenhum produto essa função deveria retornar 0 valor total deveria ser zero outro caso da sua
empresa talvez paga a entrega enfim esse tipo de coisa de eu chamo e como tal entrada qual que é a saída esperada teste unitário é sobre isso a gente vai ver mais sobre teste unitário nos próximos vídeos principalmente com mão na massa mas agora eu já quero quebrar um mito aqui que eu já vi isso acontecendo milhares de vezes um teste unitário que precisa de um banco de dados não é um teste unitário a gente vai ver que tipo de teste é ele daqui a pouquinho mas o teste unitário não precisa de nada para rodar
só precisa daquele código diferente do teste end-to-end que eu precisei de uma base de idade micro serviço etc o teste unitário é um teste de algoritmo ele só deveria testar o fluxo desse dessa função desse método atual tô mas eu quero testar uma função que vai precisar ir numa base de dados eu preciso essa voz de idade e aí veio um conceito a gente vai ver nos próximos vídeos conceito de moto de dublês e é praticamente isso se você tem uma classe dentro dessa função objeto que precisa ir na base de dados a ideia que
você ao invés de usar esse objeto nessa conexão real você vai estimular esse objeto e finge que ele tá indo na base das você vai fingir que ele foi e que ele retornou dados e aí seu fluxo vai continuar então teste unitário ele não depende de nada somente do próprio código de teste e baseado nisso a gente já consegue imaginar o custo desse teste unitário um teste unitário somos testes mais baratos que a gente vai ver aqui na nossa pirâmide de teste ali coisa tipo um dinheiro só que o valor que ele traz vai ser
meu polêmico isso mas o valor que ele traz para a empresa não é não chega perto do valor para um teste em frente e trás ele traz uma estrela de valor 3 e o teste evitar ele é muito importante mas é muito comum que a gente tenha vários desses testes passando mas quando a gente vai acessar a página de login a página tá quebrada como pode os meus pés estão todos passando mas a minha página tá quebrada por quê porque a gente ter trocado a função isoladamente que é a ideia no teste unitário só que
a gente não testou a integração dessas funções e aí a gente vai para o próximo para o próximo tipo de teste da nossa pirâmide que são os testes de integração então já tem um cenário em que já tem o teste de ponta a ponta que dessa absolutamente tudo na sua aplicação e tem os testes unitários que testam as funções os métodos isolados mas eu falei que eu preciso testar a integração dessas funções porque de repente ok esta função funciona bem atenção a a função de funciona bem mas quando eu chamo usa uma função cê que
chama o ar e o b o quebra-me por algum motivo então eu preciso de um teste de integração para verificar não só as funções isoladas mas tem que estar ver como elas se comportam juntas e aí sim talvez seja necessário ter uma base de dados um banco de dados rodando para garantir que esse conjunto de métodos funcionam bem juntos as funções e além disso eles se conectam na base de dados e eles funcionam perfeitamente bem qual é a diferença de um teste de integração para um teste end-to-end de novo wendy ponta a ponta um teste
de integração é como se eu pegasse um método no meio desse fluxo eu fico e rodar se ele ele vai na base de dados ele vai chamar tudo né dele para baixo mas ele não vai testar o front-end que tá lá na frente então ele testa assim várias integrações mas não é uma coisa é final para o usuário também traz mais valor até para o próprio utilizador né que entende que quando eu chamo essa função esse método ele funciona como esperado chamando outras funções utilizando outros outros recursos na com banco de dados cash e tudo
massa por causa disso esses testes de integração tão no meio da nossa pirâmide obviamente e eles são um meio-termo entre os testes unitários e os testes em frente por causa disso eles custam dois dinheiros e ele traz um valor mediano ali umas duas estrelas para empresa a gente tem uma certa garantia mas a gente ainda assim não tem confiança de que por exemplo nosso front a gente tá funcionar a gente pegou um funcionário da quente no meio e testou dali para lá claro que eu tô usando exemplos de back-end mas eu poderia usar teste de
integração no front tumblr como é importante dizer que eu tô usando exemplos aqui né eu falei que o teste end-to-end tinha uma página de login faz um teste a gente pode ser um aplicativo que eu navego no aplicativo ele pode ser seu perguntação apeir um teste a gente doente é você chamar um in the point dessa pie e ele vai percorrer todo o fluxo do mesmo jeito então eu tenho produtos diferentes e você tem que pegar o conceito aí eu te encaixar no produto que vocês trabalham dele então essa pirâmide de teste da muita informação
para gente ela definiu os tipos de teste que a gente tem ela definiu como valioso esses testes são e ela definiu os custos do teste mas além disso tem uma outra coisa importantíssima que é pirâmide teste dispara gente esse formato de pirâmide diz que a ba o que são os testes unitários é obviamente maior do que o topo ou seja para você ter um sistema saudável em termos de número de testes automatizados você precisa ter mais testes unitários do que testes de integração e do que testes de ponta a ponta por quê porque o sérgio
de contar quantas são caros para manter eles são caros como a gente disse então é é melhor para nossa saúde mental que a gente tenha poucos mas super importantes teste de ponta a ponta e que a gente tenha muitos testes unitários eu não falei aqui sobre isso porque a gente vai falar isso nos próximos vídeos mas um teste unitário além de garantir que a função tá funcionando bem que o metro tá funcionando bem ela traz um valor muito grande para gente porque ele mostra para gente que o nosso código não está bem feito em termos
de acoplamento né com acoplada as coisas estão no oi amiga quem tá escrevendo sisvitalis o próprio teste diz isso para gente é muito muito mágico mas de novo a gente vai ver isso no próximo vídeo aqui no canal e esse vídeo tá aqui do lado eu te espero lá tchau