[[oktatas:web:javascript:javascript_teszt:jasmine|< Jasmine]] ====== Jasmine-browser-runner kezdés ====== * **Szerző:** Sallai András * Copyright (c) 2022, Sallai András * Szerkesztve: 2022, 2023 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Jasmine kezdés ===== npm install --save-dev jasmine-browser-runner jasmine-core yarn add --dev jasmine-browser-runner jasmine-core Készítsük elő a Jasmine-t: npx jasmine-browser-runner init A parancs hatására, létrejön egy spec/support/jasmine-browser.json fájl. Itt találhatók a Jasmine alapbeállításai. { "srcDir": "src", "srcFiles": [ "**/*.js" ], "specDir": "test", "specFiles": [ "**/*[sS]pec.js" ], "helpers": [ "helpers/**/*.js" ], "env": { "stopSpecOnExpectationFailure": false, "stopOnSpecFailure": false, "random": false }, "browser": { "name": "firefox" } } A "specDir" tulajdonság alapértelmezetten a "spec" könyvtárra mutat. Ezt átírtam a mintában "test"-re. A package.json fájlban állítsunk be egy scriptet: "scripts": [ "test": "jasmine-browser-runner serve" ] ===== Tesztírás ===== Document

Vmi




const baseElem = document.querySelector("#base"); const heightElem = document.querySelector("#height"); const calcButton = document.querySelector("#calcButton"); const areaElem = document.querySelector("#area"); if(calcButton) { calcButton.addEventListener('click', () => { let base = Number(baseElem.value); let height = Number(heightElem.value); let area = calcTriangleArea(base, height); areaElem.value = area; }); } const calcTriangleArea = (base, height) => { return base * height / 2; } describe("Egy teszt", function() { it("Van egy kivétel", function() { expect(true).toBe(true); }); }); describe("A suite", function() { it("contains spec with an expectation", function() { expect(true).toBe(true); }); it("calcTriangleArea tesztélse", function() { let area = calcTriangleArea(30, 35); expect(525).toEqual(area); }); }); ===== Indítás ===== ==== Böngészőben ==== A teszt indítása: npm test A böngészőbe írjuk be: * http://localhost:8888 ==== Parancssor ==== Futtatás parancssorból: npx jasmine-browser-runner runSpecs Ideiglenesen így is elindul egy böngésző, de le is áll. Szükség lehet a chromedriver csomagra, ha az aktuális chrome driver régebbi: npm install chromedriver ===== Esetek tiltása ===== xdescribe('Valami', () => { //valami kód }); describe('Valami', () => { xit('Más valami', () => { //kód }); }); ===== createTd tesztje ===== function createTd() { let td = document.createElement('td'); let button = document.createElement('button'); button.textContent = 'valami'; td.append(button); return td; } describe('createTd() metódus tesztje', () => { it('object típus ad vissza', () => { let actual = typeof createTd() == 'object'; expect(actual).toBe(true) }) it('A visszaadott elemben egy elem van', () => { let actual = createTd().childElementCount == 1 expect(actual).toBe(true) }) it('A visszadott elem tartalma', () => { let actual = createTd().textContent == 'valami' expect(actual).toBe(true) }) it('A gyemek button?', () => { let actual; createTd().childNodes.forEach(node => { actual = node.nodeName == 'BUTTON' }) expect(actual).toBe(true) }) }); ===== Linkek ===== * https://jasmine.github.io/setup/browser.html (2023) * https://jasmine.github.io/api/4.5/matchers (2023) * https://howtodoinjava.com/javascript/jasmine-unit-testing-tutorial/ (2023) * https://www.guru99.com/node-js-testing-jasmine.html (2023)