Niedawno opublikowałem post, w którym pokazałem, że biblioteka JEST nadaje się do testowania aplikacji node.js. Przedstawiałem wtedy podstawowe tworzenie testów i to w jak szybki sposób można tę bibliotekę skonfigurować aby uruchomić pierwszy test.
Dzisiaj chciałbym pokazać jak tworzyć testy z biblioteką JEST dla aplikacji powstającej w Typescript. Nie jest to skomplikowane, jednak wymaga już więcej pakietów NPM do zainstalowania zanim uruchomimy pierwszy test.
Instalacja i konfiguracja
W tym poście skupię się na najszybszym zainstalowaniu potrzebnych pakietów bez zagłębiania się w konfigurację “wodotrysków”. W poprzednim poście o bibliotece JEST zostały poruszone już podstawy, jeśli jesteś zainteresowany to zapraszam do zapoznania się z nim.
Instalacja JEST
Na początek potrzebujemy zainstalować bibliotekę JEST i dodatki do obsługi Typescript.
$ npm install --save-dev jest ts-jest @types/jest
Teraz tworzymy plik konfiguracyjny dla JEST o nazwie jest.config.js
.
module.exports = { "roots": [ "/lib" ], "transform": { "^.+\\.ts?$": "ts-jest" }, };
Tam gdzie występuje tablica ‘roots’ należy wskazać miejsca gdzie umiejscowione są pliki z testami.
W pliku package.json
należy jeszcze zaaktualizować skrypt test
aby korzystał z zainstalowanego test runnera.
"test": "jest",
Instalacja interpretera
Aby testy i kod aplikacji były poprawnie interpretowane musimy wykorzystać popularnego narzędzia do kompilacji kodu – Babel. Potrzebujemy doinstalować poniższe paczki:
$ npm install --save-dev @babel/core @babel/preset-env babel-jest
Następnie trzeba dodać jeszcze jeden plik konfiguracyjny o nazwie babel.config.js
module.exports = { presets: [ ['@babel/preset-env', { targets: { node: 'current' } }], + '@babel/preset-typescript', ], };
Uruchomienie
W celu udowodnienia, że powyższa konfiguracja jest wystarczająca, wezmę na tapet najprostszy z przykładów jaki można przedstawić.
export default function sum(a: number, b: number): number { return a + b; }
Następnie tworzymy plik z testami, który zweryfikuje, czy dodawanie działa poprawnie. Przy okazji chciałbym zwrócić uwagę na to aby pliki z testami posiadały rozszerzenie .ts
, bo w innym wypadku mogą pojawić się problemy.
import sum from "./calculate"; describe('calculate', () => { test('should return correct value', () => { // when const result = sum(5, 4); // then expect(result).toBe(9); }); });
Teraz pozostaje tylko uruchomić testy wklepując w konsolę poniższą komendę
$ npm test
Działa? U mnie działa 😉
Podsumowanie
W tym krótkim poście przedstawiłem jak szybko skonfigurować aplikację, która powstaje w Typescript tak aby dało się tworzyć testy z wykorzystaniem biblioteki JEST. Mam nadzieję, że taka krótka i zwięzła forma postów odpowiada, a w przypadku problemów zachęcam do kontaktu!