Felhasználói eszközök

Eszközök a webhelyen


oktatas:web:nodejs:rest_api:supertest

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
oktatas:web:nodejs:rest_api:supertest [2024/07/27 19:29] – eltávolítva adminoktatas:web:nodejs:rest_api:supertest [2024/07/28 11:46] (aktuális) – létrehozva admin
Sor 1: Sor 1:
 +[[oktatas:web:nodejs:rest_api|< REST API]]
 +
 +====== SuperTest ======
 +
 +  * **Szerző:** Sallai András
 +  * Copyright (c) 2022, Sallai András
 +  * Szerkesztve: 2022, 2024
 +  * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
 +  * Web: https://szit.hu
 +
 +===== Bevezetés =====
 +
 +A SuperTest REST API tesztelő Node.js könyvtár.
 +
 +
 +===== Telepítés =====
 +
 +  npm install supertest --save-dev
 +
 +
 +===== Próba =====
 +
 +<code javascript proba.js>
 +const request = require('supertest');
 +</code>
 +
 +
 +Futtatás:
 +  node proba.js
 +
 +Ha nem kapunk kimenetet, a telepítés sikeres.
 +
 +===== Egyszerű GET teszt =====
 +
 +<code javascript gettest.js>
 +const request = require('supertest');
 + 
 +request('http://localhost:3000')
 +  .get('/api/employees')
 +  .end(function(err, res) {
 +        if (err) throw err;
 +            console.log(res.body);
 +  });
 +
 +</code>
 +
 +Az end() metódus véglegesíti a kérést, az API hívásával.
 +
 +===== Elvárt válaszok =====
 +
 +Az expect() metódussal jelezzük, hogy az elvárt választ 200.
 +
 +<code javascript extest.js>
 +request('http://localhost:3000')
 +  .get('/api/employees')
 +  .expect(200)
 +  .end(function(err, res) {
 +      if (err) throw err;
 +  });
 +</code>
 +
 +Az expect() hívást az end() előtt kell megtenni.
 +
 +
 +Vizsgáljuk azt is, hogy a válasz JSON volt-e.
 +
 +<code javascript extest.js>
 +request('http://localhost:3000')
 +  .get('/api/employees')
 +  .expect(200)
 +  .expect('Content-Type', 'application/json')
 +  .end(function(err, res) {
 +    if (err) throw err;
 +  });
 +</code>
 +
 +===== A JSON válasz ellenőrzése =====
 +
 +<code javascript extest.js>
 +request('http://localhost:3000')
 +  .get('/api/employees')
 +  .expect(200)
 +  .expect('Content-Type', 'application/json')
 +  .expect(function(res) {
 +      if (!res.body.hasOwnProperty('name')) throw new Error("Expected 'name' key!");
 +      if (!res.body.hasOwnProperty('city')) throw new Error("Expected 'city' key!");
 +  })
 +  .end(function(err, res) {
 +      if (err) throw err;
 +  });
 +</code>
 +
 +Használhatunk assert() metódust, így rövidebb sorokat kapunk:
 +
 +<code javascript extest.js>
 +const request = require('supertest');
 +const assert = require('assert');
 + 
 +request('http://localhost:3000')
 +  .get('/api/employee')
 +  .expect(200)
 +  .expect('Content-Type', 'application/json')
 +  .expect(function(res) {
 +    assert(res.body.hasOwnProperty('name'));
 +    assert(res.body.hasOwnProperty('city'));
 +  })
 +  .end(function(err, res) {
 +    if (err) throw err;
 +  });
 +</code>
 +
 +
 +===== Kombináció Mocha-val =====
 +
 +
 +<code javascript moctest.js>
 +describe('Dolgozók tesztje', function() {
 +  it('válasz, JSON tartalommal', function(done) {
 +    request('http://localhost:3000')
 +      .get('/api/employees')
 +      .expect(200)
 +      .expect('Content-Type', 'application/json')
 +      .expect(/{"name":".*","city":"Szeged"}/, done);
 +  });
 +});
 +</code>
 +
 +Vegyük észre, hogy elhagytuk az end() metódust, és az utolsó
 +expect() metódus végére egy done paraméter került.
 +
 +
 +===== Felhasznált webhelyek =====
 +
 +  * https://www.testim.io/blog/supertest-how-to-test-apis-like-a-pro/ (2022)
 +  * https://www.npmjs.com/package/supertest (2022)
 +
 +
  
oktatas/web/nodejs/rest_api/supertest.1722101359.txt.gz · Utolsó módosítás: 2024/07/27 19:29 szerkesztette: admin