[[oktatas:web:javascript:javascript_teszt:jasmine:példák|< Példák]] ====== Jasmine - Triangle osztály tesztje ====== * **Szerző:** Sallai András * Copyright (c) 2022, Sallai András * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Bevezetés ===== Ez a mintafeladat egy ECMAScript modul tesztelését mutatja be. ===== Könyvtárszerkezet és fájlok ===== app01/ |-spec/ | `-support/ | `-jasmine.json |-src/ | |-css/ | | `-style.css | |-js/ | | |-app.js | | `-triangle.js | `-index.html |-test/ | `-triangle.spec.js |-.gitignore |-bs-config.json `-package.json ===== Az src ===== export class Triangle { constructor() { this.area = 0; } calcArea(base, height) { return base * height / 2; } } import { Triangle } from "./triangle.js"; const triangle = new Triangle(); var area = triangle.calcArea(30, 35); console.log("Terület: " + area); Háromszög

Háromszög

===== package.json ===== { "name": "app01", "version": "1.0.0", "main": "index.js", "license": "MIT", "type": "module", "scripts": { "test": "jasmine", "start": "npx lite-server" }, "devDependencies": { "lite-server": "^2.6.1" "jasmine": "^4.5.0" }, } Szükség van a "type": "module" beállításra is ECMAScript modul tesztelésére. ===== A teszt ===== { "spec_dir": "test", "spec_files": [ "**/*[sS]pec.?(m)js" ], "helpers": [ "helpers/**/*.?(m)js" ], "env": { "stopSpecOnExpectationFailure": false, "random": true } } import { Triangle } from "../src/js/triangle.js"; describe("Mintatesztek", () => { it('30, 35-re 525.0 működik', () => { const tri = new Triangle(); expect(tri.calcArea(30, 35)).toBe(525.0); }) it('A calcArea() létezik', () => { const tri = new Triangle(); expect(tri.calcArea()).toBeDefined(); }) it('Az area tulajdonság létezik', () => { const tri = new Triangle(); expect(tri.area).toBeDefined(); }) }) Fontos, hogy az import sor végén a triangle.js fájlnévnek kötelező a .js kiterjesztés megadása, szemben például a jest tesztelő eszközzel.