Code Monkey home page Code Monkey logo

js-testing-types's Introduction

Testowanie JavaScript

Acceptance Tests End-to-end tests Static Code Analysis Unit & Integration Tests Mutation Tests

Maintainability codecov Js Testing Types Mutation testing badge

Poniższe repozytorium służy do pokazania różnych strategii testowania automatycznego w języku JavaScript wraz z gotowymi przykładami testów i konfiguracji środowiska.

Całość uruchamiana jest w Continuos Integration - Wszystkie testy uruchamiane są automatycznie poprzez github actions worflow, wszystkie definicje dostępne w yaml

Kod w tym repozytorium jest oparty o React i domyślne ustawienia create-react-app, oprócz tego zawiera:

  • Prostą aplikację do której podłączone są testy.
  • Runner do testów Jest. Testy jednostkowe i integracyjne w plikach **/*.test.js
  • Framework do testowania komponentów React'a react-testing-library
  • Runner do testów e2e cypress. Definicje testów w katalogu cypress
  • Pre hook git-push uruchamiający testy w momencie git push. Kod który nie przechodzi testów Jest nie będzie wysłany do repozytorium.
  • Skonfigurowany Continuous Integration oparty o github actions worflow.
  • Testy akceptacyjne codecept.io
  • Testy mutacyjne stryker-mutator.io

Testy jednostkowe i integracyjne

Unit & Integration Tests codecov

  • Testy jednostkowe i integracyjne uruchamiane poprzez runner jest. Lokalne uruchomienie yarn test
  • Test jednostkowy - Przykładowy banalny test div.test.js dla serwisu.
  • Test integracyjny - banalny test App.test.js dla komponentu React.
  • codecov jest wysyła raport code coverage do codecov.io

Testy akceptacyjne

Acceptance Tests . Przykładowy banalny test scenarios/app_test.js Testy integracyjne uruchamiane poprzez runner codecept.io. Lokalne uruchomienie yarn codeceptjs, w drugim tabie musisz mieć uruchomioną aplikację poprzez yarn start

Testy end-to-end i Behavior-driven development (BDD)

End-to-end tests Js Testing Types

Testy mutacyjne

Mutation Tests Mutation testing badge

  • testy mutacyjne uruchamiane są poprzez stryker przeciwko testom jest. Lokalne uruchomienie yarn stryker run
  • Mutation testing badge Runner wysyła raport do dashboard.stryker-mutator.io

Testy statyczne

Static Code Analysis Maintainability

  • testy statyczne eslint - yarn lint
  • testy codeclimate - yarn codeclimate
  • Maintainability runner wysyła raport do codeclimate.com

Teoria i przykłady w JavaScript.

Pisanie testów to wykrywanie błędów przez programistów w trakcie pisania kodu źródłowego zamiast w najgorszym możliwym momencie - na produkcji przez klienta.

Mateusz Wojczal 2020

Prezentacja

Źródła prezentacji są w katalogu slides.

yarn slides uruchamia prezentację.

Całość dostępna jest online

Poprzednia cześć prezentacji (nie uwzględnia np testów mutacyjnych) dostępna jest na YouTube

Prezentacja napisana jest w markdown a wyświetlana przy pomocy evealjs.

Uruchomienie testów i reszta komend

Wszystkie komendy wpisane są do package.json jako scripts

Live Coding

Testowanie w JS. Jest, React testing lib, Cypress Live coding dotyczył testowania prostej aplikacji napisanej w React z create-react-app

  • testów jednostkowych - jest
  • testów strukturalnych i ich konfiguracji, z użyciem narzędzi code climate i eslint
  • testów integracyjnych/funkcjonalnych -jest i react-testing-library
  • testów end-to-end e2d - cypress.js
  • testów akceptacyjnych codecept
  • konfiguracji jest do Test Driven Development, raportów Code Coverage
  • konfiguracji Continuous Integration na podstawie CircleCi, jest i cypress
  • ustawienia pre-hook'ów z użyciem husky aby nie pchać niepoprawnego kodu

js-testing-types's People

Contributors

qunabu avatar

Watchers

 avatar

js-testing-types's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.