JEST vs Cypress vs Mocha – A szoftverteszt elengedhetetlen a kód helyességének és minőségének javításához.

Néhányszor ezelőtt a szoftvertesztelési keretrendszerek csak egy vagy esetleg kettő programozási nyelvre korlátozódtak. Jelenleg azonban számos programozási nyelven folynak tesztelések, mint például a Java, a Visual basic script, a C# és a JavaScript stb.

A modern fejlesztésben a JavaScript jelentős szerepet játszik. Sok ipari óriás JavaScript fejlesztői és tesztelési keretrendszert használ szoftvermegvalósításaihoz. A sok használat óta napról napra növekszik az olyan JavaScript-keretrendszerek száma, mint az Angular, React, Vue, svelte, és minőségük.

Így a JavaScript tesztelési keretrendszerek, például a Jest, a Jasmine, a Karma stb. használata egyre jobb és használhatóbb, mint valaha.

Mi a tesztelés?

Ha egy mondatban tárgyaljuk, a szoftvertesztelés egy módszer lehet egy szoftverrendszer-alkalmazás gyakorlatiasságának felmérésére, azzal a céllal, hogy megvizsgáljuk, hogy a kifejlesztett szoftverrendszer megfelel-e a kritikus igényeknek vagy sem, és a hibák felderítésére annak igazolására, hogy az áru hibás. - ingyenesen szállíthat kiváló minőségű terméket. Manapság számos szoftvertesztelési keretrendszer létezik, amelyek megkönnyítik a fejlesztők életét.

Mi az a tesztelési keretrendszer?

A tesztelési keretrendszer lehet tippek vagy szabályok összessége, amelyeket tesztesetek készítéséhez és tervezéséhez használnak. A keretrendszer gyakorlatok és eszközök keverékét tartalmazza, amelyek egy négyzet alakú mérték, amely segíti a minőségbiztosítási szakembereket a további hatékonyság ellenőrzésében.

Ezek a tesztek tartalmazhatnak írási szabványokat, tesztadat-kezelési stratégiákat, objektumtárakat, ellenőrzési eredmények tárolására szolgáló folyamatokat vagy információkat a külső erőforrásokhoz való hozzáférés módjáról.

Három gyakori teszttípus

Egység tesztelése

Az egységteszt a leggyakrabban használt vizsgálati módszer. A szoftvertervezés legkisebb egységére összpontosít, általában maga a fejlesztő ír és tesztel.

Főleg a nem megfelelő csomagtelepítések, a ciklusok, feltételek, utasítások stb. problémái, valamint a funkcionalitás és az aritmetika problémáira összpontosítanak. A kód alatti töredék egy példa egységteszt.

for (var i = 0, l = items.length; i < l; i++) {
  (function(n) {
    var item = items[n];
    var desc = 'should turn `' + item.passed + '` into `' + item.expected + '`';
    it(desc, function (done) {
        tester(item.passed, item.expected, done);
    });
  })(i);
}

Integrációs tesztelés

Az integrációs tesztelés az egyik legnépszerűbb tesztelési módszer a szoftveriparban. A feldolgozás több egységen keresztül történik a tesztcélok elérése és a hibák feltárása érdekében. Főleg kétféle tesztelési mechanizmus létezik, ezek a feketedobozos tesztelés és a fehérdobozos tesztelés.

A fekete dobozos tesztelés többnyire érvényesítésre szolgál, miközben figyelmen kívül hagyja a szoftver belső működési mechanizmusát.

A White-box tesztelés főként ellenőrzésre szolgál, miközben a szoftver belső működési mechanizmusára vonatkozik.

const testButton = document.getElementById(‘test-button’);
testButton.click(); 
drone.ifClickTestButton() .then(isButtonChange => assert(isButtonChange));

Tesztelés végétől végéig

Szinte az összes technológiai vállalat körében ez a legnépszerűbb módszer a szoftvertesztelésre. Itt a fekete dobozos tesztelési megközelítés szerint végezzük a tesztelést.

Go to URL “https://localhost:4200"
Click on "SignUp"
Expected page URL “https://localhost:4200/sign-up"
Type 'new-user' in the #user_name field
Type 'new-password' in the #password field
Click "SignUp"
Expected page URL “https://localhost:4200/user-profile"

Ha egyértelmű elképzelést szeretne kapni a tesztelési típusokról és a tesztelés előnyeiről, javasoljuk, hogy olvassa el a következő cikket.

03 Népszerű JavaScript tesztelési keretrendszerek

01. JEST

Ez egy JavaScript tesztelési keretrendszer, amelyet a Facebook fejleszt és tart fenn. A Jest népszerű a közösség körében az egyszerűsége és az olyan népszerű JavaScript-keretrendszerek támogatása miatt, mint az Angular, a React, a Vue, a NodeJS és a Babel.

A Jest telepítése és a kódban való használata olyan egyszerű, mint gondolná.

//using yarn
yarn add — dev jest
//using npm
npm install --save-dev jest

A telepítés után hozzá kell adnia a jest-et a package.json

"scripts": {
  "test": "jest"
}

A stateofJS statisztikái alapján azt láthatjuk, hogy a keretrendszer népszerűsége és használata a hírverésben van.

A Jest előnyei

  • Szinte nulla konfiguráció szükséges bármelyik JavaScript-keretrendszerhez.
  • A tesztek elszigetelt módon futnak, ami azt jelenti, hogy párhuzamosan minden teszttel. Tehát a keretrendszer végrehajtása optimalizált és továbbfejlesztett.
  • A Jest egy jól dokumentált és szervezett keretrendszer, amely gazdag eszközkészlettel rendelkezik.
  • Teljes kódlefedettséggel rendelkezik. A tesztelők kódlefedettséget generálhatnak az --coverage jelző hozzáadásával.
yarn jest --coverage
     // will give you passed test Suites and failed Test suites
  • A Jest egyéni feloldót használ az importáláshoz a felhasználói tesztekben, egyszerűvé téve a fejlesztői teszt hatókörén kívül eső objektumok kigúnyolását.
  • A kivételkezelés jobb a saját kontextusaival, mint például a toBe, toBeCloseTo, toEqual, toStrictEqual, toHaveProperty, toMatchSnapshot and toThrowError.
expect(received).toStrictEqual(expect)
    //here expected and recieved results will be displayed
        - Expected - 0
        + Recieved + 1

A Jest hátrányai

  • A Jest pillanatképek csak akkor hatékonyak, ha a kódbázis kicsi, és ha felülről lefelé olvassa őket. Tehát csökkentenie kell a pillanatfelvétel hosszát.

02. Ciprus

A Cypress egy gyors, egyszerű és megbízható eszköz a modern frontend webalkalmazások teszteléséhez. Célja, hogy megoldja azt a sok problémát, amellyel a mérnökök és fejlesztők szembesülnek a webalkalmazások tesztelése során, különösen a React és az AngularJS alapján.

A Cypress telepítése Linuxra nem olyan egyszerű, mint a Jest telepítése. Van egy asztali alkalmazásuk, amely a következő követelményeket támogatja:

  • macOS 10.9 és újabb (csak 64 bites)
  • Linux Ubuntu 12.04 és újabb, Fedora 21 és Debian 8 (csak 64 bites)
  • Windows 7 és újabb

Linux operációs rendszer esetén telepítenie kell a szükséges függőségeket a rendszerre a következő paranccsal.

apt-get install libgtk2.0–0 libgtk-3–0 libgbm-dev libnotify-dev libgconf-2–4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb

Ezután telepítheti a Cypress-t ugyanazzal, mint a fonal vagy az npm.

npm install cypress --save-dev
   //or
arn add cypress --dev

Végül megnyithatja a Cypress projektet fonal vagy npx használatával.

npx cypress open
   //or
yarn run cypress open

A stateofJS statisztikái alapján azt láthatjuk, hogy a keret népszerűsége és használata semleges egyetlen év alatt.

A Cypress előnyei

  • Ez egy fejlesztőbarát, nyílt forráskódú, minden az egyben tesztelési keretrendszer, amely nem használja a Seleniumot.
  • Ez egy olyan keretrendszer, amely a tesztelés helyett a végpontok közötti tesztelésre összpontosít. Tehát ez nem egy szabványos automatizálási keretrendszer.
  • A Cypress-t körülvevő architektúra nagy részét úgy építik fel, hogy jól kezeljék a modern JavaScript-keretrendszereket. Tehát mindent tesztel, ami webböngészőn fut.
  • A Cypress automatikusan betölti az egyenlegeket, és párhuzamosan futtathat rögzített teszteket több virtuális gépen. Egy párhuzamos zászlóban haladsz át.
  • Van egy beépített tesztelési könyvtár, amely támogatja az e2e tesztelést. Tehát rugalmasabb az API e2e teszteléssel.
  • A tesztelők rendelkeznek a pillanatfelvétel lehetőséggel, így a tesztelők láthatják, mi történt minden egyes művelet vagy parancs előtt és után.

A Cypress hátrányai

  • A Cypress nem támogatja az olyan böngészőket, mint az IE, a Safari vagy az Opera.
  • Mivel a párhuzamos tesztelés egyetlen gépen fut, nagyobb feldolgozási teljesítményre van szüksége. Tehát maga a Cypress nem ajánlja ezt a megközelítést.

03. Mokka

A Mocha az egyik régebbi, egyszerű és könnyű JavaScript-tesztelési keretrendszer, amely a NodeJS-en és a böngészőn fut, és hetente több mint 5 millió letöltéssel.

A mokka telepítése nagyon egyszerű az npm használatával

npm install --save-dev mocha

Mielőtt bármilyen tesztet futtatna, módosítania kell a “scripts” címkét a package.json.

"scripts": {
  "test": "mocha"
}

A stateofJS statisztikái alapján azt láthatjuk, hogy a keretrendszer népszerűsége és használata semleges az elmúlt négy évben. De ez növeli az érdeklődést az elmúlt évben.

A Mocha előnyei

  • Bármely böngészőben vagy bármely google chrome alapkönyvtárban támogatja.
  • Mind az előtérben, mind a háttérben jól működik.
  • A tesztesetek kivételeinek leképezése sokkal egyszerűbb, mint más keretrendszerek.
  • Mivel ez összehasonlíthatóan régebbi tesztelési keretrendszer, több támogatást kap a közösség.
  • Bővítmények és bővítmények gazdag készletével rendelkezik, amelyek számos egyedi forgatókönyvben használhatók.

A mokka hátrányai

  • A pillanatkép tesztelése mokkában nem olyan egyszerű, mint más keretrendszerekben, mert meg kell küzdenie egy chai jest pillanatkép könyvtárral.
  • A mokka használatához sok konfigurációra van szükségünk. Így könnyen használható.

Következtetés

A hagyományos tesztelési megközelítésekhez képest jelentősebb előnye van, ha tesztelési keretrendszereket használnak a kódbázis automatikus megtekintésére, ami segít növelni a csapat tesztelési sebességét és hatékonyságát. Ezenkívül a pontosság érdekében csökkentheti az egyes szoftverek karbantartási árait és alacsonyabb kockázattal.

A fenti felmérés szerint a Jest iránt sokkal nagyobb keresletet tapasztalhatunk, mint bármely más keretrendszerre. Ennek okát megérthetjük, ha megnézzük a fenti részletes leírásokat.

Végül szeretném javasolni JavaScript tesztelési keretrendszerek használatát projektjeihez a kód helyességének és minőségének javítása érdekében.