< Példák

Jasmine - Triangle osztály tesztje

Szerző: Sallai András

Copyright © 2022, Sallai András

Licenc: CC Attribution-Share Alike 4.0 International

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);
<!DOCTYPE html> <html lang="hu"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Háromszög</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <h1>Háromszög</h1> </div> <script type="module" src="js/app.js"></script> </body> </html>

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.