[[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.