COMEÇANDO com TESTES UNITÁRIOS no JAVA SPRING | Junit + Mockito

Поделиться
HTML-код
  • Опубликовано: 13 янв 2025

Комментарии • 63

  • @kipperdev
    @kipperdev  Год назад +6

    👉 TORNE-SE UM ESPECIALISTA EM JAVA! (10% OFF)
    tr.ee/kipperdev-desconto-rocketseat-one

  • @Joaovictor-nx1ys
    @Joaovictor-nx1ys Год назад +31

    Boa tarde, acho muito legal seus vídeos. sou cego, e programador java também. é legal essa ideia de sempre compartilhar os códigos desenvolvidos nas aulas no gi. ajuda de mais a não ficar pesquisando por fora.

    • @eduardoarjo
      @eduardoarjo Год назад +2

      Concordo

    • @kipperdev
      @kipperdev  Год назад +6

      Oii Joao, muito obrigada, fico feliz que gosta dos videos!
      E sim, sempre tento compartilhar o link do Github para auxiliar nos estudos também 😊

  • @gabriellutz185
    @gabriellutz185 Год назад +4

    Estou estudando testes unitários também e gostei muito de usar o mockito, muito útil e bem bom pra entender os fundamentos de de testes. MockMvc também é bom pra fazer testes de integração

  • @SamGoularte
    @SamGoularte Год назад +4

    Fê, valeu por compartilhar conhecimento, esse video deu vários insights para otimizar alguns códigos por aqui!!

    • @kipperdev
      @kipperdev  Год назад +1

      Que showw, @FacesMaker 💜
      Tomara que melhore as suas aplicações!

  • @jusilveira7830
    @jusilveira7830 Год назад +9

    Fernanda, comecei a acompanhar seus vídeos agora, excelente conteúdo. Vou pedir um vídeo um pouco diferente: um vlog sobre como voc mantém sua saúde em dia mesmo trabalhando o dia inteiro sentada e lidando com stress. Pra mim tem sido um baita desafio. Parabéns pelo canal! ❤

  • @luanasoares9723
    @luanasoares9723 Год назад +11

    TOP! sentia falta de Junit no canal... quem sabe agora vem um de circuit breaker, docker, SOLID 💖

  • @mauricionepomuceno91
    @mauricionepomuceno91 4 месяца назад

    Fernanda Muito obrigado! Você de fato me ajudou a compreender o que são os mock e a diferença para o injectmock! Que didática! Sucesso!

  • @felipegmarcal
    @felipegmarcal 5 месяцев назад

    obrigado por isso! sua didática é foda, estou evoluindo demais com seus vídeos!

  • @snowz_dark
    @snowz_dark Год назад +1

    muito bom, Kipper. Vlw pela aula!

  • @gabrielfabrega1336
    @gabrielfabrega1336 Год назад

    Show de bola, Fernanda! A empresa que trabalho está bastante empenhada em cobrir os projetos com testes unitários e seus vídeos têm me ajudado demais. Mesmo no Spring quanto em outras tecnologias.
    Vc manja muito! Parabéns 👏🏻

  • @Guilhermesilva-hg2hb
    @Guilhermesilva-hg2hb Год назад +1

    tava precisando desse conteudo! valeu Fe 💓💓

  • @Linrolf
    @Linrolf Год назад +1

    Conteúdo excelente, seria interessante um video falando de testes em geral, pois muita gente, inclusive outros "Seniores", de onde trabalho, acham perca de tempo. Olhando assim, parece ser muito código para testar um create, ou find, sendo que você pode fazer testes na mão, ignorando total o efeito dos testes em cascata. Também seria legal falar mais sobre automatização de testes.
    Gostei muito do seu canal. Parabéns.

  • @ricardogc74
    @ricardogc74 Год назад

    Gostei muito de estudar o Mockito com este vídeo. Com sua didática e objetividade consegui finalmente fazer algumas coisas bem legais com esta tecnologia. Depois de aprender, fui um pouco mais a fundo pois precisava mockar apenas algumas das dependências, não todas, pois queria que algumas das dependências utilizassem o objeto real. Pesquisei e acabei encontrando o @Spy do Mockito. Parabéns pelo canal !

    • @kipperdev
      @kipperdev  Год назад +1

      Que legall, Ricardo.
      Fico feliz que tenha ajudado você 💜
      Boaa! É isso aí, depois de aprendermos algo temos que nos aprofundar pra entender como aplicar aquilo no nosso contexto. Parabéns pela iniciativa!
      E muito obrigado pela confiança por se tornar membro 💜

  • @AdamKnebel
    @AdamKnebel Год назад +2

    Conteúdo top! Faz um vídeo mostrando testes de integração, por favor!

    • @kipperdev
      @kipperdev  Год назад +1

      Muito obrigadaa, Adam 💜
      Boa! Vou trazer um vídeo assim!

  • @ronaldoleitedasilvasilva2789
    @ronaldoleitedasilvasilva2789 Год назад

    gostei muito dos conteudos que você entrega são muito bem explicados
    👏

  • @MrFasKill
    @MrFasKill 3 месяца назад +1

    38:17 tem que passar todas informações do objeto? não tem como mockar o que não importa e passar apenas o que precisa?

  • @GabrielAlves-kg2tq
    @GabrielAlves-kg2tq 6 месяцев назад

    Essa menina é dms meu orgulho

  • @Garimpador-yd6rd
    @Garimpador-yd6rd 2 месяца назад

    Para quem está no VSCODE é importante ter a extensão "Test Runner for Java" para conseguir realizar os testes, essa ext irá criar na barra lateral esquerda um opção de testes onde será possível rodar separadamente.

    • @kipperdev
      @kipperdev  2 месяца назад

      Boaa, ótima dica!

  • @alexandrepellegrino2699
    @alexandrepellegrino2699 Год назад

    que aula insana fer, keep it up!

    • @kipperdev
      @kipperdev  Год назад +1

      Muito obrigadaa, @alexandrepellegrino2699 💜

  • @Pedro-gu7jj
    @Pedro-gu7jj Год назад +1

    Foda dms esses 2k pra fazer o curso de java da rocketseat, convenhamos, tá um preço bem salgado pra quem é iniciante e n tem nem grana direito

  • @godinis2222
    @godinis2222 25 дней назад

    Ótimo conteúdo! Dúvida de iniciante, eu preciso testar todas as classes? controllers, services, repositorys, configs, infra, utils etc.... Pelo que entendi do vídeo o que se testa são as regras de negocio e métodos que tenha algum retorno certo? não sei como estruturar os testes e o que realmente temos que testar.

  • @gabriel.a.a.
    @gabriel.a.a. 2 месяца назад

    É uma boa prática utilizar service dentro de service?
    Nesse caso, foi-se usado o userService com o método padrão da JPA (FindById), e isso facilita, porque, geralmente tratamos o retorno desse Optional no service. Mas, por curiosidade mesmo, tem problema no quesito de boas práticas?
    Se alguém souber, vai me ajudar bacana. 😁☕

    • @LuisGustavo-my9zy
      @LuisGustavo-my9zy 2 месяца назад

      Na maioria dos contextos isso é super comum, pois é dentro da camada service que você irá tratar as regras de negócios do domínio, como por exemplo User. Mas, não confunda. Lá você faz o tratamento e pode invocar os métodos do repositório, através da injeção de dependências mas é dentro da camada do repositório, é que você ta tratando o FindById ou qualquer outro método relacionado ao banco de dados. Dessa forma, você está garantindo uma boa prática. Bons estudos!

  • @amandacastro5740
    @amandacastro5740 6 месяцев назад

    Vídeo perfeito! Tem algum sobre teste de integração também?

  • @viniciusnep1
    @viniciusnep1 9 месяцев назад

    eu to apaixonado, porem didatica mt boa

  • @Manuelsembola
    @Manuelsembola 8 месяцев назад

    Boa tarde Fernanda. Muito obrigado pelo vídeo ajudou muito. Me tira uma duvida por favor? No Java tem como fazer uns teste end2end como, ocorre no node.js ex: supertest + jest. Como realizar testes o controller ?

  • @felipemaxrosa
    @felipemaxrosa Год назад

    Valeu por compartilhar @kipperdev bom fim de semana!

    • @kipperdev
      @kipperdev  Год назад

      Obrigadaa Lipe! Para você também

  • @brunotorres1067
    @brunotorres1067 5 месяцев назад

    Ótima aula

  • @porfiriodev
    @porfiriodev Год назад

    Agora sim hein Fê!!!

  • @matheusrodrigues-gk2os
    @matheusrodrigues-gk2os Год назад

    Video muito bom, pena que quando fui testar meu repositorio não recuperou nada no meu banco nem gravou o registro

  • @PauloAzevedo88
    @PauloAzevedo88 11 месяцев назад

    Opa, parabéns pelo conteúdo, só não entendi muito bem a necessidade de utilizar o EntityManager para persistir o usuario no teste do repository, sendo que já estava a disposição o UserRepository, consegue clarear para mim?

  • @arozendojr
    @arozendojr Год назад

    Seu conteúdo é bem full Stack, duvida de front, dentro dos teste unitários, você coloca teste estruturais e de estilos, ou outro nome, tipo verificar se o form tem label, inputs, depois teste de estilhos , cor, fonte, tamanho?

  • @karinetavaresdasilva3594
    @karinetavaresdasilva3594 24 дня назад

    qual plugin theme vc usa que parece o eclipse?

  • @petroniobonavides3530
    @petroniobonavides3530 Год назад +3

    Professora....
    A) Pensa comigo uma coisa... Me ajuda a entender...
    B) Estou fazendo essa pergunta, para varios JAva Influencers do YT...
    C) E o seguinte:
    - Se mock's/Mockito permite a "manipulacao do resultado", ou seja, eu dou o resultado que eu quiser.
    Qual o valor de um TESTE, onde eu eu defino o "resultado que eu quero"???? (manipulacao do resultado)
    Por exemplo:
    O metodo retorna uma String..... No mock, eu determino que o resultado sera 22.22 (uma Double)...
    E o Mock, logicamente, "me da o resultado de 22.22".
    Para que serve um teste desses?
    Onde ao inves de ele me dar o resultado REAL(testes de integracao), ele me da um resulta "maquiado"(teste mockados)???

    • @Brendospdev
      @Brendospdev Год назад +8

      Então, mano, a ideia do teste unitário é testar uma pequena unidade do seu código, como um método, de forma isolada. Quando digo 'de forma isolada', refiro-me a testar sem influência de dependências externas. Para garantir que o resultado do meu teste unitário não seja afetado por dependências externas (como no exemplo do vídeo: transactionRepository, authorizationService e afins), preciso 'mockar' essas dependências, ou seja, criar implementações falsas e definir as respostas que elas fornecerão para uma entrada específica. Perceba que definimos o resultado esperado para as dependências (coisas externas), não para o método que estamos testando.
      Com isso em mente, vem a resposta para sua pergunta 'Para que serve um teste desses?': É simplesmente para testar a lógica única e exclusiva do método ou classe sob teste. No caso do vídeo, ao testar o método 'createTransaction' do transactionService, queremos validar, por exemplo, se a transação está autorizada. Assim, no nosso teste unitário, queremos verificar como o método 'createTransaction' se comporta em um cenário onde o método 'authorizeTransaction' do authService retorna true. Qual comportamento esperamos do método 'createTransaction' neste cenário? Esperamos que ele não lance uma exceção, persista a nova transaction no banco e atualize o sender e o receiver.
      Perceba que o pensamento ao criar testes unitários é: 'Como meu método se comporta nessas condições? Ele realmente faz o que eu espero em um cenário X? E em um cenário Y?', 'O método que estou testando executa o método save do repository quando determinada condição é verdadeira?', 'Ele lança uma exceção quando determinado serviço retorna false?'. Note que em nenhum momento estamos pensando em testar se o resultado de algo que a gente mockou está certo, testamos a lógica do método dado esses resultados.
      O objetivo dos testes de integração/componente é diferente dos testes unitários e, a depender do contexto, ainda é utilizado alguns mocks. Nos testes de integração normalmente validamos entrada e saída de determinado fluxo e não se um método X foi executado em uma condição y.
      Ter somente testes unitários não garante a qualidade do software, nem assegura que nosso software funcione como deveria. Da mesma forma, ter somente testes de integração/componente também não oferece essa garantia. Por isso, em um sistema, realizamos vários tipos de testes: testes unitários, testes de integração/componente, testes E2E, testes de fumaça, testes de regressão e testes de performance. Tudo isso é apresentado pela literatura em uma pirâmide de testes que mede o custo e a eficiência de cada tipo de teste.
      Espero que eu não tenha sido redundante e tenha tirado sua dúvida. Se precisar de ajuda estamos ai

    • @LuisGustavo-my9zy
      @LuisGustavo-my9zy 2 месяца назад

      Em palavras resumidas, inclusive para quem ler sua pergunta, quando você cria um teste unitário para cobrir seu método, você tá garantindo através do Junit que aquele método dentro da sua aplicação terá o resultado ou a devida exceção para qual ela foi elaborada. Isto é, quando você trás os resultados mockados e faz o teste, o entendimento é que o teste traga o valor mockado que você definiu e compara (simula) se é o mesmo retorno do método que você tem na aplicação.

  • @arturneves7525
    @arturneves7525 11 месяцев назад

    muito bom!

  • @jonataswf
    @jonataswf Год назад

    Qual curso você fez para aprender java, spring boot e testes unitarios?

    • @kipperdev
      @kipperdev  Год назад +1

      Oii, @jonataswf. Tudo bem?
      Eu basicamente estudei com tutoriais no RUclips, documentação e no próprio trabalho.
      Mas hoje, a Rocketseat, plataforma que eu me especializei em React, lancou a trilha de Java e ela á muuuito boa.
      www.rocketseat.com.br/one?KIPPERDEV-none-none-none-none-redes_kipperdev&referral=kipperdev&coupon=KIPPERDEV

  • @VaDigitNow
    @VaDigitNow Год назад

    Muito obg..

  • @elenildosantos888
    @elenildosantos888 Год назад +1

    Fazer os testes parece mais complicado do que criar a aplicação e testar na prática

  • @danieldamacena5197
    @danieldamacena5197 Год назад

    maravilhoso, como sempre!
    ps: repository tem a tônica em reposi"to"ry. Fica repositóry

    • @kipperdev
      @kipperdev  Год назад

      Valeuu Daniel! 😃

    • @Torr169
      @Torr169 Год назад +1

      Não seria rePÓsitory?

    • @danieldamacena5197
      @danieldamacena5197 Год назад

      usa o app do tradutor e faz ele falar pra você ouvir direitinho como pronuncia 😁

    • @alexandrepellegrino2699
      @alexandrepellegrino2699 Год назад

      @@danieldamacena5197 entao, o translater fala "repÓsitory" e nao repositóry kkk, é leviOsa e nao leviosá

    • @danieldamacena5197
      @danieldamacena5197 Год назад

      @@alexandrepellegrino2699 translator, você diz, né? aqui eu ouço repósitóri. Coloquei agudo no primeiro o porque ele soa aberto

  • @rodrigonicodemou1123
    @rodrigonicodemou1123 Год назад

    Essa menina é demais. Uma coisa que não vem ao caso (só curiosidade), você em algum momento já foi hiperativa?

  • @mateusmelo8428
    @mateusmelo8428 9 месяцев назад +2

    Mannnns...

  • @ldskmain
    @ldskmain Год назад

    First

  • @MarcosSantos-tq2ni
    @MarcosSantos-tq2ni Месяц назад

    deirabeise... rum... aulinha de inglês é? 😬

  • @vitoralves5394
    @vitoralves5394 2 месяца назад

    Oi fer, tudo bem? Uma dúvida, porque vc colocou no TransactionServiceTests o @Autowired e @InjectMocks no TransactionService? Só o @InjectMocks não é suficiente?