Testando aplicações React com Jest & Testing Library - Decode

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ม.ค. 2025

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

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

    para quem está acompanhando com o video
    transform: {
    "^.+\\.(t|j)sx?$": [
    "@swc/jest",
    {
    jsc: {
    parser: {
    syntax: "typescript",
    tsx: true,
    decorators: true,
    },
    keepClassNames: true,
    transform: {
    legacyDecorator: true,
    decoratorMetadata: true,
    react: {
    runtime: "automatic",
    },
    },
    },
    module: {
    type: "es6",
    noInterop: false,
    },
    },
    ],
    },

  • @viniciusmarsola4126
    @viniciusmarsola4126 ปีที่แล้ว +32

    Para quem esta criando o projeto nesse momento, com react 18. Talvez voce precise fazer as seguinte confitgurações:
    instalar: npm install -D jest-environment-jsdom
    no seu ts config: "moduleResolution": "node" ou "NodeNext",

    • @henriqueconzatti618
      @henriqueconzatti618 ปีที่แล้ว

      Não rolou comigo, ainda buscando uma solução, se encontrar respondo aqui. Consegui usar esse lib configurando um module.exports no jest.config.ts, mas ele ainda acusa falha no render()

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

      consegui, removi o module.exports, e acrescentei
      setupFilesAfterEnv: ['@testing-library/jest-dom'],
      testEnvironment: 'jsdom', após o transform dentro de config mesmo, rodou liso

    • @mrzinofc
      @mrzinofc 6 หลายเดือนก่อน

      @@henriqueconzatti618 salvou demais mlk hahah

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

    o conteúdo da live começa em 8:32
    conteúdo igual esse não se acha em qualquer lugar não, parabéns diego!

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

    data test id: 35:35
    user event click: 43:20
    debug: 44: 40
    user event type: 47:45
    waitFor(): 52:00
    Not - Negação de expect: 55:50
    render with new prop: 56:48
    -Initial State: 57:30v
    -re-render: 1:00:45
    -screen: 1:04:24

  • @gabriel_matoss
    @gabriel_matoss ปีที่แล้ว +9

    Para quem estiver vendo esse video, se atente a documentação, pois algumas mudaram. Como por exemplo a utilização do userEvent.

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

    Para quem não conseguiu usar as funções do jest-dom, criando o arquivo setup.ts. Importa a lib (import "@testing-library/jest-dom";) direto no arquivo de teste que funciona

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

    Cheguei tarde e perdi um pouco, agora rever e consumir bons conhecimentos
    Era o que precisava agora JEST e Testing-library com REACT

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

    Sensacional, estou estudando Jest pra uma entrevista de emprego e claro busquei conteúdo de vocês que como sempre é excelente, eu passando nesse teste minha situação financeira melhora e com certeza invisto no Ignite xará 😃😃😃😃

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

    Valeu pelo conteúdo! Já tinha ouvido falar da Testing Library, mas ainda não tinha visto exemplos. Vou começar a utilizar nos projetos.

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

    25:00 ate 35:00 instalação sem enrolação

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

    "Teste não vai fazer falta na sua vida até você sofrer pela falta de testes" - eu estou justamente agora sofrendo pela falta de testes kkk vídeo no momento certo

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

    Top demais o conteúdo. Essa semana mesmo comeceiii a estudar pois na empresa que estou hoje é necessário realizar testes unitários e essa live veio na hora certa. até o momento não tinha encontrado neenhum conteúdo tão bom assim, principalmente para quem não tem experiência com testes.

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

    Mais um excelente conteúdo, como tudo que fazem! Abraço!

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

    Diego parabéns pelo conteúdo.

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

    Muito boa a aula Diegão, as lives e top para mostra como e o dia dia, quando ficamos preso em algumas coisas simples as vezes kkk mas sempre acontece

  • @Mrsgmuller73
    @Mrsgmuller73 10 หลายเดือนก่อน +2

    Para quem está com problema no render, usem o npm install identity-obj-proxy --save-dev , depois no jest. config mudem o transform: {
    '^.+\\.(js|jsx|ts|tsx)$': '@swc/jest',
    }, e moduleNameMapper: {
    '\\.(css|less)$': 'identity-obj-proxy',
    },

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

    Que conteúdo sensacional mano, meus parabéns! Sua didática só aumenta com o tempo!

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

    Muito bom o conteúdo.
    Tive algumas dificudades justamente nos temas que ficou para próxima.
    Mocking API Calls (msw)
    Spies e Stubs
    Context (wrapper on render)
    Mais deu para aprender e muito com esse vídeo.

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

    Quem tiver algum erro basta instalar o seguinte pacote:
    npm install -D jest-environment-jsdom

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

    Aula fantástica!

  • @luimodotti
    @luimodotti ปีที่แล้ว

    Valew Diego, conteúdo muito bom.
    Seria legal ter um vídeo atualizado de como configurar o Jest para um projeto React-Native com Expo e Typescript... Estou sofrendo bastante com isso e não se acha nada atualizado na internet!

  • @iridium-x7i
    @iridium-x7i ปีที่แล้ว

    Diego parece o kakashi sempre explica muito bem sobre tecnologia.

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

    Está com problema no userEvent.
    A nova forma de usar é assim:
    it("shold be able to add new item to the list", async () => {
    const { getByText } = render();

    const addButton = getByText("Adicionar");
    await userEvent.setup().click(addButton);
    expect(getByText("novo")).toBeInTheDocument();
    });
    Precisa usar o async e await

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

      Muitissimo obrigado pelo seu comentário alma abençoada

    • @GuilhermeAlmeida00
      @GuilhermeAlmeida00 ปีที่แล้ว

      Muito obrigado ² , alma abençoada

    • @tassiosantos5693
      @tassiosantos5693 ปีที่แล้ว

      Vlw, mano ajudou muito.

    • @wltech3460
      @wltech3460 ปีที่แล้ว

      salvo mais um kkkkkkkkkkkkk😅

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

      sem o setup() funciona de buenas

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

    Conteúdo incrível

  • @johael
    @johael ปีที่แล้ว

    Já passei por essa dor, depois de ficar mexendo no código por mais de uma hora, eu descobri que tinha quebrado em outro lugar, e agora pra descobrir em que momento quebrou foi doído rrsrrsrs

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

    caso o input fosse um outro componente, também deveria ser testado de forma isolada, e assim por diante né???

  • @FerShibli
    @FerShibli ปีที่แล้ว

    Aonde eu posso encontrar a continuação? Não tô conseguindo encontrar... O item seguinte da playlist já é sobre outra coisa

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

    consegui fazer o teste com rerender passar, ele espera o novo valor da propriedade, e não o componente, já que a função dele somente atualiza as propriedades.
    it('should render list items', async () => {
    const { getByText, rerender, debug, findByText } = await render();
    expect(getByText('Diego')).toBeInTheDocument();
    expect(getByText('Rodz')).toBeInTheDocument();
    expect(getByText('Mayk')).toBeInTheDocument();

    rerender(['Julia']);
    expect(await screen.findByText('Julia') ).toBeInTheDocument();

    });

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

    Fala deve aos 4:40

  • @PauloDaniel-di6vj
    @PauloDaniel-di6vj 2 ปีที่แล้ว

    Pessoal, foi feito a segunda parte desse video, falando sobre spies e stubs etc?

  • @alessandrob.g.4524
    @alessandrob.g.4524 2 ปีที่แล้ว

    Man, how do you test onFocus for text input on RN using RTL?

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

    Existe uma porcentagem ideal de cobertura de testes pra front end?

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

    Já fez a segunda parte? Se fez não estou achando alguém me da um help ai preciso muito do restante :)

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

    Alguém sabe onde posso encontrar o código do video? :)

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

    Qual é essa linguagem utilizada nos testes que já percebi ser a mesma linguagem para testes Angular e React? Isso é Typescript?

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

    Início de fato: 21:22

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

    Essa live teve continuação?

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

    Tive diversos problemas na hora de aplicar os testes , entrei na comunidade e ninguém me ajudou

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

    notei que os testem estão relacionado apenas a ui, e não ao que acontece por trás? testar front-end é isso mesmo?

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

      De modo geral sim, geralmente se testa o contrato com o cliente. Rola de testar funções isoladas, mas pensa, no fim tudo irá impactar a UI, por isso é melhor garantir que o contrato está certinho.

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

    Eu configurei aqui o jest baseado na config do video, mas como faço pra fazer o Jest interpretar SVGs ?

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

    Estou com dificuldade de usar Jest com as variáveis de ambientes do Vite, ao rodar dá a mensagem: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node12', sendo que o tsconfig está com esnext.

    • @Gabriel-qi1cv
      @Gabriel-qi1cv 2 ปีที่แล้ว +1

      Tente : ctrl+shift+p -> Procure por 'restart' -> Escolha a opção: TypeScript: Restart TS server

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

    Esse video continuando a explicacao saiu ou virou lenda pessoal? hahaha

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

    pretende fazer um vídeo sobra o suspense do react

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

    Alguém mais ta com problema em fazer testes em projetos novos? no meu terminal ta acusando o erro:
    Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.
    Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.
    By default "node_modules" folder is ignored by transformers.

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

      descobriu?

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

      @@podcaststv5091 sim, eram os arquivos css, por serem módulos eles causam conflito, no jest.config informei que eles deveriam ser permitidos e parou de dar erro

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

      @@frank511 massa, vou tentar

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

      @@podcaststv5091 Acrescenta isso no config moduleNameMapper: {
      '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|css|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
      '/src/test/setup.ts'
      },

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

    Recebi esse erro no console ao executar o test
    O ambiente de teste jest-environment-jsdom não pode ser encontrado. Certifique-se de que a opção de configuração testEnvironment aponte para um módulo de nó existente.

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

      Adicionei a lib jest-environment-jsdom e funcionou

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

      @@elvesbrito9633 valeu

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

    Não está funcionando!

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

    Ótimo pra programa depois de fuma uns becks kkkkkkkkkkkkkkkkkk

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

    Só deu erros aqui. não consegui usar o "userEvent"

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

      Isso pq o modo que ele usa o userEvent não funciona mais na versão 14 do @testing-library/user-event, você tem que usar async/await e usar userEvent.setup().
      Da uma olhada na documentação ta bem tranquilo de entender

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

      @@teulolz valeu pela ajuda, eu alterei como falou olhando pela documentação, voltou a funcionar. thanks....

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

    cara, é muita lib/pacote...

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

    00

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

    PARA DE BATER NA PORRA DO TECLADO kkkk

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

    Qual o Link da configuração do jest.config.ts ?

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

      transform: {
      '^.+\\.(t|j)sx?$': [
      '@swc/jest',
      {
      jsc: {
      parser: {
      syntax: 'typescript',
      tsx: true,
      decorators: true,
      },
      keepClassNames: true,
      transform: {
      legacyDecorator: true,
      decoratorMetadata: true,
      react: {
      runtime: 'automatic',
      },
      },
      },
      module: {
      type: 'es6',
      noInterop: false,
      },
      },
      ],
      },

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

      O @Fernando de Paula colocou nos comentários acima.
      Segue ai novamente:
      transform: {
      "^.+\\.(t|j)sx?$": [
      "@swc/jest",
      {
      jsc: {
      parser: {
      syntax: "typescript",
      tsx: true,
      decorators: true,
      },
      keepClassNames: true,
      transform: {
      legacyDecorator: true,
      decoratorMetadata: true,
      react: {
      runtime: "automatic",
      },
      },
      },
      module: {
      type: "es6",
      noInterop: false,
      },
      },
      ],
      },