Criando testes na aplicação com Jest e SuperTest - Code/drops #93

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ธ.ค. 2024
  • ✅ Inscreva-se no DoWhile2021: bit.ly/30EkU0I
    Você provavelmente já se perguntou como pode realizar testes na sua aplicação, quais tipos de testes utilizar e quando utilizar.
    Nesse vídeo iremos entender na prática como aplicar os testes unitários e de integração, utilizando Jest e Supertest.
    github.com/roc...
    -----
    Confira a grade completa de conteúdos do canal aqui: rocketseat.com...
    Conecte-se a 200mil devs e avance para o próximo nível com a nossa plataforma: rocketseat.com...
    Cadastre-se na nossa plataforma: app.rocketseat...
    Junte-se a mais de 392mil devs em nossa comunidade no Discord: / discord
    Acompanhe a Rocketseat nas redes sociais:
    Twitter: @rocketseat
    Facebook: @rocketseat
    Instagram: @rocketseat_oficial
    Nos ouça também no Spotify:
    Podcast Faladev
    Podcast Alumni
    Podcast Proxy

ความคิดเห็น • 80

  • @leandromartins6935
    @leandromartins6935 2 หลายเดือนก่อน

    Muito bom. Era exatamente isso que eu precisava. Os outros vídeos frisam demais na questão dos serviços mockados e os testes acabam ficando muito vagos. Eu precisava desse teste de integração, com interação real com o banco. Obrigado

  • @igorgoncalves5691
    @igorgoncalves5691 ปีที่แล้ว +2

    Gostei da sacada ein 14:25 a Dani manda muito bem.

  • @thallespassos5310
    @thallespassos5310 3 ปีที่แล้ว +20

    Muito bom! Adoraria saber sobre SOLID e também como estruturar as pastas, seus nomes, ondem deve ficar e etc...

  • @BrandyWilliam
    @BrandyWilliam 2 ปีที่แล้ว +2

    Dani, parabéns pela tua didática!
    Isso me ajudou muito no meu skeleton aqui. Tenho algumas mudanças, mas consegui adaptar ao meu mundo!
    Parabéns!

  • @arthurviniciussantossilva1432
    @arthurviniciussantossilva1432 2 ปีที่แล้ว +2

    Dani, vc não faz ideia do quanto vc me ajuda no trabalho, obrigado!

  • @danilorg
    @danilorg 2 ปีที่แล้ว +2

    Já pesquisei outros vídeos sobre o tema e o seu foi o mais claro. Muito obrigado.

  • @carlosdanielpohlod4388
    @carlosdanielpohlod4388 3 ปีที่แล้ว +2

    aula de testes e engenharia de software junto, sensacional, parabéns, muito obrigado mesmo!

  • @GabrielSilva-ni4jy
    @GabrielSilva-ni4jy 3 ปีที่แล้ว +28

    Massa Dani! Gostaria muito de ver vídeos sobre SOLID e Clean Architecture.

    • @rocketseat
      @rocketseat  3 ปีที่แล้ว +6

      Faaaaala, Gabriel!
      Sugestão anotadíssima! 💜 😍

    • @TheSostenesg7
      @TheSostenesg7 3 ปีที่แล้ว +1

      Também estou querendo isso. Gostei muito da organização do projeto da Dani, ficou muito clean.

  • @gabrielalvez1845
    @gabrielalvez1845 ปีที่แล้ว +1

    Ótima didatica, conteúdo incrível.

  • @peroconino
    @peroconino 3 ปีที่แล้ว +1

    Adorei o code/drops Dani vc é perfeita, eu tava com duvida como fazer teste de integração mas vc esclareceu tudo o isso pra mim

    • @rocketseat
      @rocketseat  3 ปีที่แล้ว

      Wooow!
      Sério, Leandro? Que massa que tiramos suas dúvidas! A Dani é fera, né? 💜 😍

  • @danielvinicius4906
    @danielvinicius4906 3 ปีที่แล้ว +7

    muito legal! agora falta os testes de frontend ReactJSsssssss

  • @goodvandro
    @goodvandro 3 ปีที่แล้ว +2

    Estou muito feliz com os novos Cod/drops.
    Sugestão de conteúdo: Como trabalhar com transactional para prevenir erros com múltiplas operações na base de dados.

  • @moacirmota340
    @moacirmota340 3 ปีที่แล้ว +4

    Oi Dani, que vídeo massa!
    Os testes são incríveis mesmo e com eles sentimos mais segurança para fazer alterações na aplicação.
    Tenho adotado o TDD como prática nas minhas aplicações pessoais e percebo o quanto sofri atoa quando não desenvolvia com testes kkkkkkk
    Nunca usei o prisma mas já ouvi falar bem dele.
    Vc poderia fazer um vídeo explicando mais sobre o ORM Prima e abordando quais seriam as principais diferenças e vantagens em relação ao TypeORM?
    Valeu Dani!

  • @GuilhermeSantos001
    @GuilhermeSantos001 3 ปีที่แล้ว

    Finalmente consegui implantar os testes unitários e de integração com sucesso, obrigado!!!

    • @rocketseat
      @rocketseat  3 ปีที่แล้ว +1

      Woooow!
      Show, Gui! Que massa! E curtiu? 💜 😍

    • @GuilhermeSantos001
      @GuilhermeSantos001 3 ปีที่แล้ว

      @@rocketseat Trabalhoso mas vale a pena, só nessa brincadeira de começar os testes unitarios ja peguei bug em feature nova, ainda bem pois iria para produção :(

  • @wendelsantos3399
    @wendelsantos3399 2 ปีที่แล้ว

    OLHA A QUALIDADE DESSE CONTEÚDO !!!

  • @VitorSilva-qm3rk
    @VitorSilva-qm3rk 3 ปีที่แล้ว +1

    Olá Dani/Rocketseat, primeiramente meus parabéns pelo ótimo conteúdo apresentado por você e pela equipe Rocketseat. Gostaria de saber se poderiam gravar um vídeo falando sobre testes de Mutação com Javascript. Recentemente eu vi um só que na linguagem PHP.

  • @obrxlx
    @obrxlx 3 ปีที่แล้ว

    Muito bom! Uma sugestão que acredito que outros teriam também: Uma aplicação com o fastify como provider, visto que o pacote tem crescido demais na comunidade Node!

    • @rocketseat
      @rocketseat  3 ปีที่แล้ว +1

      Show que curtiu, Bruno! Opa, anotei aqui a sua sugestão! 🚀 💜

  • @gpenner
    @gpenner 3 ปีที่แล้ว

    Muito obrigado!! Eu estava precisando disso

  • @kassuelo8124
    @kassuelo8124 2 ปีที่แล้ว +1

    Pq não usou o UserDAOInMemory no teste de integração ao invés de criar banco de dados?
    *que se fosse criar banco de dados pra teste não precisaria nem do DAOInMemory, poderia ter usado o banco de teste.

  • @junyorff12
    @junyorff12 3 ปีที่แล้ว

    Show de bola! Vow msm pelo conteúdo!

  • @zilondequadrosmaciel1006
    @zilondequadrosmaciel1006 2 ปีที่แล้ว

    Daniele faz um vídeo com um Frontend, exemplo Next conectando ao Backend do Prisma que você mostrou, um abraço.

  • @sally4461
    @sally4461 3 ปีที่แล้ว +1

    Danii faz um video fazendo esse backend 🥰 amei o video 💜💜

  • @georgelucasgp
    @georgelucasgp 2 ปีที่แล้ว +5

    Para quem tiver esse erro: ( class CustomEnvironment extends NodeEnvironment ) TypeError: Class extends value # is not a constructor or null
    Solução: const NodeEnvironment = require('jest-environment-node').default;

    • @rodrigolopesmarques6361
      @rodrigolopesmarques6361 ปีที่แล้ว +1

      Tu me salvou demais, perdi mais de 1h tentando achar uma solução. Muito obrigado!!

    • @ronaldodev
      @ronaldodev ปีที่แล้ว +1

      boa, George

  • @leonardogalvao3623
    @leonardogalvao3623 3 ปีที่แล้ว

    Muito bom o conteudo e me ajudou muito, poderia mostrar um pouco mais sobre a arquitetura solid

  • @ocara200
    @ocara200 3 ปีที่แล้ว +20

    Quero Code/Drops de SOLID 🙏🙏

  • @rdgomt
    @rdgomt 3 ปีที่แล้ว +1

    Fala pessoal! Seria muito interessante um vídeo aplicando testes no frontend (React).

  • @tarciziobarbosa9532
    @tarciziobarbosa9532 3 ปีที่แล้ว

    Vídeo maravilhoso Dani, ainda sou muito travado nessa parte do teste e você como sempre direcionou em 100% meus estudos. Ah, e como eu utilizo bastante o Prisma, você pode falar um pouco mais sobre a parte de Type Safety, lá da documentação? Pelo que eu vi a gente pode usar as próprias tiragens já geradas pelo Prisma Client pra gente usar na nossa aplicação. Achei maravilhoso. Bjao 🥰

  • @Aragir
    @Aragir 3 ปีที่แล้ว +1

    Oi Dani!
    Curto muito o conteúdo da Rocket, obrigado por mais este!
    Fiquei super incomodado em criar um usuário no abata-se durante um teste kkk
    Dei uma pesquisada e parece que uma boa prática é nunca testar o código "alheio". Neste caso por exemplo, uma falha na criação de usuário poderia ser uma falha no mantenedor do Banco de Dados e não o meu código.
    Parece que eu teria que criar usar uma mock function neste caso...
    Que dureza hein? É assim mesmo?
    kkk
    Obrigado!!

  • @diegocruz3043
    @diegocruz3043 ปีที่แล้ว +2

    como ficaria o teardown com o mysql ?

  • @borel674
    @borel674 2 ปีที่แล้ว

    Dani é possivel vermos o coverage dos testes integrados?

  • @alvarocoelhojesus1494
    @alvarocoelhojesus1494 3 ปีที่แล้ว +1

    Como poderia fazer os testes para get, update, delete? E como poderia fazer a conexao usando o typeorm no lugar do prisma?

  • @Caiomsilva
    @Caiomsilva ปีที่แล้ว +1

    alguem ja recebeu o erro "TypeError: Class extends value # is not a constructor or null" em algum momento?

  • @silviolucas2590
    @silviolucas2590 ปีที่แล้ว +1

    Rodo o teste, gera o schema e roda a seed, mas minhas query no repository não encontra nenhum banco, não consigo criar registro e nem fazer um select. D:
    Mais alguém?

  • @Defdark23
    @Defdark23 3 ปีที่แล้ว

    Excelente Aula !!
    Eu tenho duas dúvida rs. Tem que criar um repositório fake para nossos teste unitário, ou basta fazer os teste direto no DB test e depois apaga-los, assim como no teste de integração ?
    A outra é que, meus teste esta demorando quase 23 seg, para executar será que é alguma configuração no jest ? ou o pc mesmo ? rs

  • @dolfera1962
    @dolfera1962 3 ปีที่แล้ว

    Manda muito!

  • @titobarrosTI
    @titobarrosTI ปีที่แล้ว +1

    Não era pra ter dado um erro no expect do createUserService.execute(userData) do rejects, ou seja, numa segunda tentativa de cadastro de user e não somente após ter mudado o texto de new Error?

    • @AnndreJunior
      @AnndreJunior 10 หลายเดือนก่อน

      Se for no banco de dados em memória não
      O array sempre começa vazio

  • @thallespassos5310
    @thallespassos5310 3 ปีที่แล้ว

    É necessário ficar criando repositórios in-memory? Não existe alguma ferramente que facilite a criação disso, eu lembro de ter ouvido algo sobre "Mock", mas não entendi muito bem na época, seria essa a ferramente usada para substituir os repositórios in-memory? #PR

  • @leozinhomaladao
    @leozinhomaladao 2 ปีที่แล้ว

    Muito bom, porém o video ficou meio confuso com parte sendo executada e depois inicia.

  • @leonardoantoniomaundokabon786
    @leonardoantoniomaundokabon786 3 ปีที่แล้ว

    super video valeu. Poderia fazer um video : como fazer uma api node TS com SOLID ? Obrigado

  • @asaventurasderannyzyzz6243
    @asaventurasderannyzyzz6243 3 ปีที่แล้ว

    Dani faz o processo do zero sobre como fazer as separações de pastas 🙃

  • @dotkoon
    @dotkoon 3 ปีที่แล้ว

    #PR
    Primeiramente parabéns pelo vídeo, conteúdo show de bola.
    Uma dúvida, quando o projeto vai para produção, os arquivos criados para a realização dos testes vai junto?
    Abraços.

    • @rocketseat
      @rocketseat  3 ปีที่แล้ว

      Faaaaaala, dev!
      Valeu demais pelo feedback e por nos trazer a sua dúvida! 💜 😍

  • @edufgh6266
    @edufgh6266 2 ปีที่แล้ว

    começo do superTest 39:15

  • @jubileudasilva9258
    @jubileudasilva9258 3 ปีที่แล้ว

    Mano essa mina explica bem

    • @rocketseat
      @rocketseat  3 ปีที่แล้ว

      A Dani é fera! Curtiu o conteúdo, Jubileu? 💜

  • @maykonsousa84
    @maykonsousa84 2 ปีที่แล้ว

    Muito legal mas eu enfrento diversos problemas com essa abordagem
    Vira e mexe recebo um erro P1002 de timeout nesse comando prisma migrate dev

  • @jeanjunior-dev
    @jeanjunior-dev 3 ปีที่แล้ว

    Esse vídeo é muito bom, mas o alcance está péssimo!!!
    Eu procuro ele pra buscar propositalmente pode "Testes node rocketseat" e ele não aparece :-\
    Este vídeo é essencial não só para os testes mas também para o SOLID

  • @alexsandroeuzebiodasilva6872
    @alexsandroeuzebiodasilva6872 3 ปีที่แล้ว +1

    Ola Dani, poderia fazer esse projeto desde o zero.

  • @ccapua
    @ccapua 2 ปีที่แล้ว

    tem o video fazendo essa aplicação do zero?

  • @lessaapolinario6131
    @lessaapolinario6131 2 ปีที่แล้ว

    Code/Drops de SOLID por favor

  • @tbass.p3480
    @tbass.p3480 2 ปีที่แล้ว

    muito bom, só não está dando certo no nestjs: TypeError: TestEnvironment is not a constructor, mesmo assim obrigado, foi o mais perto que cheguei até agora pra conseguir testar o nestjs com prisma...

  • @wendelsantos3399
    @wendelsantos3399 2 ปีที่แล้ว

    TypeError: Class extends value # is not a constructor or null
    Ocorre no arquivo prisma-environment-jest.js.
    Alguém manja ?

    • @wendelsantos3399
      @wendelsantos3399 2 ปีที่แล้ว

      Fuçando a documentação do Jest, descobri que esse erro acontece após a atualização 28 do Jest.
      Solução:
      /* eslint-disable @typescript-eslint/no-var-requires */
      const { execSync } = require('child_process');
      const { TestEnvironment }= require('jest-environment-node');
      const { resolve } = require('path');
      const { Client } = require('pg');
      const { v4: uuid } = require('uuid');
      const prismaCli = './node_modules/.bin/prisma';
      require('dotenv').config({
      path: resolve(__dirname, '..', '.env.test'),
      });
      class CustomEnvironment extends TestEnvironment {
      constructor({globalConfig, projectConfig}) {
      super({globalConfig, projectConfig});
      this.schema = `code_schema_${uuid()}`;
      console.log('schemas', this.schema);
      this.connectionString = `${process.env.DATABASE_URL}${this.schema}`;
      }
      setup() {
      process.env.DATABASE_URL = this.connectionString;
      this.global.process.env.DATABASE_URL = this.connectionString;
      execSync(`${prismaCli} migrate dev`);
      }
      async teardown() {
      const client = new Client({
      connectionString: this.connectionString,
      });
      await client.connect();
      await client.query(`DROP SCHEMA IF EXISTS "${this.schema}" CASCADE`);
      await client.end();
      }
      }
      module.exports = CustomEnvironment;

  • @iurirodrigues9078
    @iurirodrigues9078 3 ปีที่แล้ว

    O link não está funcionando 😕

    •  3 ปีที่แล้ว +1

      Esqueci de deixar público rs. Tenta agora

    • @iurirodrigues9078
      @iurirodrigues9078 3 ปีที่แล้ว

      Consegui, muito obrigado!
      Sugestão de vídeos:
      1 - API de pagamentos
      2 - testes com AdonisJs v5
      3 - Solid e Clean architecture

  • @nelsondanielsilvagutierrez2478
    @nelsondanielsilvagutierrez2478 3 ปีที่แล้ว

    será que alguem mais tem problema con o async-express-error?

  • @clippervr56
    @clippervr56 3 ปีที่แล้ว

    Link tá "quebrado".

    •  3 ปีที่แล้ว

      Tenta agora :)

  • @ThiagoPereira-sy9pc
    @ThiagoPereira-sy9pc 3 ปีที่แล้ว

    Nunca entendi direito o SOLID

  • @alex5598
    @alex5598 3 ปีที่แล้ว

    Showw, mas o link infelizmente está quebrado ;)

    • @rocketseat
      @rocketseat  3 ปีที่แล้ว +1

      Faaaala, dev! Tenta agora! A Dani deixou ele público! 💜

    • @alex5598
      @alex5598 3 ปีที่แล้ว

      @@rocketseat Agora foi 💜

  • @canaldomonstro1112
    @canaldomonstro1112 2 ปีที่แล้ว

    O cara paga 15 k pra um tester pra descobrir que os usuários do sistema dele não consegue logar por causa do espaço que o teclado do celular dá automaticamente quando o usuário seleciona o e-mail

  • @ptk7732
    @ptk7732 3 ปีที่แล้ว +1

    Plss code drops de solid

    • @rocketseat
      @rocketseat  3 ปีที่แล้ว +2

      Sugestão anotadíssima! 💜 🚀

  • @Baleador86
    @Baleador86 2 ปีที่แล้ว +1

    software try to learn new tNice tutorialngs and go outside of your comfort zone. I just watch TH-cam videos to get better. And don’t be afraid to

  • @marcosanterodocarmo2221
    @marcosanterodocarmo2221 2 ปีที่แล้ว +1

    .

  • @DanielVictor-qy9so
    @DanielVictor-qy9so 2 ปีที่แล้ว +1

    Just get a laptop. Legit