React.js websovelluksen testaus
Lindholm, Petri (2021)
Lindholm, Petri
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202104094484
https://urn.fi/URN:NBN:fi:amk-202104094484
Tiivistelmä
Opinnäytetyön tarkoituksena oli tehdä selvitystä ohjelmistotestauskäytännöistä sekä työkaluista React.js -kirjastolla kehitetylle websovellukselle. Opinnäytetyön toimeksiantajana toimi Hämeen Ammattikorkeakoulun Smart-tutkimusyksikkö. Tavoitteena oli luoda luotettavia testitapauksia toimeksiantajan kehittämälle Kaupunki taskussa-websovellukselle.
Opinnäytetyön teoreettisessa osuudessa määritellään työn kannalta keskeiset käsitteet sovellustestauksesta, JavaScript-ohjelmointikielestä, React.js -kirjastosta, sekä testaustyön suorittamiseen käytetyistä työkaluista. Opinnäytetyön toiminnallisessa osuudessa testitapauksia kehitetään käyttäen Jest-, React Testing Library-, ja Cypress-testaustyökaluja.
Opinnäytetyössä havaittiin Jestin olevan keskeisessä roolissa yksikkö- ja integraatiotestejä kehittäessä sen sisältämien kattavien ominaisuuksien sekä testiajurin vuoksi. React Testing Library, jota käytetään Jestin yhteydessä React.js -sovelluksia testattaessa, mahdollistaa luotettavien, yksinkertaisten ja helposti luettavien testitapausten kehittämisen. Cypress osoittautui mainioksi valinnaksi käyttöliittymätestien suorittamiseen, sillä se on helppo asentaa, käyttää, ja sen virallinen dokumentaatio on laadultaan erinomainen. The purpose of this thesis was to examine suitable tools and methods for testing a web application developed with the React.js library. This thesis was commissioned by Häme University of Applied Sciences’ Smart Research Unit. The goal was to write reliable test cases for the commissioner’s Kaupunki taskussa web application.
The theoretical part of the thesis defines the key aspects regarding software testing, the challenges JavaScript as a language brings to the testing process, the core concepts of the React.js library and the tools used for testing web applications. The thesis proceeds to describe how unit, integration and end to end testing is done in practice for a web application using Jest, React Testing Library and Cypress as testing tools.
The research demonstrates the central role Jest plays in unit and integration testing with its fantastic API, assertion library and test runner. React Testing Library, used alongside Jest provides a reliable, logical way of writing test cases for React applications. Cypress showed its strength as a user interface end to end testing tool due to its ease of use, simple installation process and outstanding official documentation.
Opinnäytetyön teoreettisessa osuudessa määritellään työn kannalta keskeiset käsitteet sovellustestauksesta, JavaScript-ohjelmointikielestä, React.js -kirjastosta, sekä testaustyön suorittamiseen käytetyistä työkaluista. Opinnäytetyön toiminnallisessa osuudessa testitapauksia kehitetään käyttäen Jest-, React Testing Library-, ja Cypress-testaustyökaluja.
Opinnäytetyössä havaittiin Jestin olevan keskeisessä roolissa yksikkö- ja integraatiotestejä kehittäessä sen sisältämien kattavien ominaisuuksien sekä testiajurin vuoksi. React Testing Library, jota käytetään Jestin yhteydessä React.js -sovelluksia testattaessa, mahdollistaa luotettavien, yksinkertaisten ja helposti luettavien testitapausten kehittämisen. Cypress osoittautui mainioksi valinnaksi käyttöliittymätestien suorittamiseen, sillä se on helppo asentaa, käyttää, ja sen virallinen dokumentaatio on laadultaan erinomainen.
The theoretical part of the thesis defines the key aspects regarding software testing, the challenges JavaScript as a language brings to the testing process, the core concepts of the React.js library and the tools used for testing web applications. The thesis proceeds to describe how unit, integration and end to end testing is done in practice for a web application using Jest, React Testing Library and Cypress as testing tools.
The research demonstrates the central role Jest plays in unit and integration testing with its fantastic API, assertion library and test runner. React Testing Library, used alongside Jest provides a reliable, logical way of writing test cases for React applications. Cypress showed its strength as a user interface end to end testing tool due to its ease of use, simple installation process and outstanding official documentation.