API-päätepisteiden integraatiotestaus
Toteuttakaa integraatiotestejä eri komponenttien välisen vuorovaikutuksen varmistamiseksi ja API-toiminnallisuuden tarkistamiseksi.
API-päätepisteiden integraatiotestaus on ilmainen Node.js-taustakehityksen bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Node.js-taustakehityksen bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Node.js-taustakehityksen bootcamp-kurssilla on yhteensä 4 oppituntia.
Mitä integraatiotestaus on?
Tervetuloa! Tässä oppitunnissa perehdymme Node.js:n API-päätepisteiden integraatiotestaukseen. Yksikkötestit testaavat pieniä, eristettyjä koodin osia, kun taas integraatiotesteillä varmistetaan sovelluksen eri osien toimivan yhdessä odotetulla tavalla.
API-rajapintojen tapauksessa tämä tarkoittaa, että päätepisteet käsittelevät pyynnöt oikein, ovat vuorovaikutuksessa tietokantojen tai muiden palveluiden kanssa ja palauttavat oikeat vastaukset.
Miksi API-päätepisteitä testataan?
API on tärkein tapa, jolla ulkoiset asiakkaat ovat vuorovaikutuksessa taustajärjestelmänne kanssa. Kattavilla integraatiotesteillä varmistetaan seuraavat asiat:
- Päätepisteet vastaavat oikeilla HTTP-tilakoodeilla.
- API:lle lähetetyt tiedot käsitellään ja tallennetaan oikein.
- API palauttaa odotetussa muodossa olevia tietoja, kuten JSON-dataa.
- Eri komponentit, kuten reititys, middleware ja tietokanta, toimivat saumattomasti yhdessä.
Näin voidaan havaita varhain virheitä, joita yksikkötestit eivät välttämättä löydä.
Keskeiset testaustyökalut
Node.js:n API-päätepisteiden testaamiseen käytämme muutamaa keskeistä työkalua:
- Jest: Testien suorittaja ja väitekirjasto, johon tutustuttiin oppitunnilla 1.
- Supertest: HTTP-palvelinten testaamiseen suunniteltu kirjasto. Sen avulla pyyntöjen lähettäminen ja vastausten tarkistaminen on helppoa.
- Express: Web-kehyksemme, jolla itse API rakennetaan.
Supertestin määrittäminen
Asennetaan ensin tarvittavat paketit. Tarvitsemme express-paketin esimerkki-API:ta varten sekä jest- ja supertest-paketit testaamiseen.
Suorittakaa tämä komento projektinne päätteessä:
npm install --save-dev express jest supertestYksinkertainen Express-sovelluksemme
Luodaan perustason Express-sovellus, jota voimme testata. Määritämme muutaman yksinkertaisen reitin.
Huomatkaa, että viemme app-ilmentymän, jota Supertest käyttää pyyntöjen tekemiseen suoraan ilman, että aktiivista palvelinta tarvitsee käynnistää porttiin.
const express = require('express');
const app = express();
// Middleware to parse JSON request bodies
app.use(express.json());
// A simple GET route
app.get('/', (req, res) => {
res.send('Hello from Express!');
});
// A GET route that returns JSON
app.get('/data', (req, res) => {
res.json({ message: 'API data', version: 1.0 });
});
// A POST route that echoes the request body
app.post('/echo', (req, res) => {
res.json(req.body);
});
// Export the app for testing purposes
module.exports = app;
// Start the server only if not in a test environment
if (process.env.NODE_ENV !== 'test') {
const port = 3000;
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
}GET-päätepisteen testaaminen
Kirjoitetaan nyt ensimmäinen integraatiotestimme. Käytämme supertest-pakettia GET-pyynnön tekemiseen juuren /-päätepisteeseen ja sen vastauksen tarkistamiseen.
Luokaa esimerkiksi tiedosto app.test.js ja lisätkää siihen seuraava koodi:
const request = require('supertest');
const app = require('./app'); // Import our Express app
describe('GET /', () => {
it('should return "Hello from Express!"', async () => {
const res = await request(app).get('/');
expect(res.statusCode).toEqual(200);
expect(res.text).toEqual('Hello from Express!');
});
});JSON-vastausten tarkistaminen
API:t palauttavat usein JSON-dataa. Supertestin avulla vastauksen jäsennettyyn JSON-runkoon pääsee helposti käsiksi res.body-ominaisuuden kautta.
Testataan /data-päätepisteemme ja varmistetaan, että se palauttaa oikean JSON-olion:
const request = require('supertest');
const app = require('./app');
describe('GET /data', () => {
it('should return JSON with message and version', async () => {
const res = await request(app).get('/data');
expect(res.statusCode).toEqual(200);
expect(res.type).toEqual('application/json');
expect(res.body).toEqual({ message: 'API data', version: 1.0 });
expect(res.body.message).toBe('API data');
});
});POST-pyyntöjen testaaminen
POST-pyyntöjen testaaminen on samankaltaista, mutta käytämme .post()-metodia ja usein myös .send()-metodia pyyntörungon liittämiseen.
/echo-päätepisteemme palauttaa yksinkertaisesti kaiken vastaanottamansa JSON-datan. Testataan tämä toiminnallisuus:
const request = require('supertest');
const app = require('./app');
describe('POST /echo', () => {
it('should echo the sent JSON data', async () => {
const testData = { name: 'Coddy', score: 95 };
const res = await request(app)
.post('/echo')
.send(testData);
expect(res.statusCode).toEqual(200);
expect(res.type).toEqual('application/json');
expect(res.body).toEqual(testData);
});
});Tietokantayhteydet ja siivous
Kun testaatte tietokannan kanssa toimivia API-rajapintoja, yleensä:
- Käytätte erillistä testitietokantaa, jotta kehitysympäristön tietoja ei saastuteta.
- Tyhjennätte tietokannan ennen jokaista testisarjaa tai testitapausta (
beforeEach/afterEach-koukkujen avulla). - Alustatte tietoja, jos testi tarvitsee tiettyjä tietoja.
Näin testit pysyvät toisistaan riippumattomina ja toistettavina.
API-testiskenaario
Testaatte Node.js:n API-päätepistettä /users, joka hyväksyy POST-pyyntöjä uuden käyttäjän luomista varten. Mitkä seuraavista väitteistä ovat TOSIA tämän päätepisteen integraatiotestauksesta?
Yhteenveto: integraatiotestaus
Hienoa työtä! Olette oppineet Node.js:n API-päätepisteiden integraatiotestauksen perusteet:
- Mitä se on: Varmistetaan komponenttien toimivan yhdessä, erityisesti API-pyyntöjen yhteydessä.
- Työkalut: HTTP-pyyntöjen simulointi Supertestillä ja Jestillä.
- Menetelmä: GET- ja POST-pyyntöjen lähettäminen sekä tilakoodien, rungon sisällön ja tietotyyppien tarkistaminen.
- Parhaat käytännöt: Erillisten testitietokantojen käyttäminen eristyksen varmistamiseksi.
Näin varmistetaan, että API on vankka ja luotettava!
Opi JavaScript tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 22
- Oppitunnit
- 92
Usein kysytyt kysymykset
Onko oppitunti ”API-päätepisteiden integraatiotestaus” ilmainen?
Kyllä – oppitunnin ”API-päätepisteiden integraatiotestaus” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Node.js-taustakehityksen bootcamp-kurssin, päivitä CoddyKit PROhon. Node.js-taustakehityksen bootcamp-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”API-päätepisteiden integraatiotestaus”?
Toteuttakaa integraatiotestejä eri komponenttien välisen vuorovaikutuksen varmistamiseksi ja API-toiminnallisuuden tarkistamiseksi. Harjoittelet Node.js-taustakehityksen bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Node.js-taustakehityksen bootcamp-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Node.js-taustakehityksen bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”API-päätepisteiden integraatiotestaus”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Node.js-taustakehityksen bootcamp-oppitunnilla?
Kyllä. Jokainen Node.js-taustakehityksen bootcamp-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Yksikkötestaus Jestillä
- API-päätepisteiden integraatiotestaus
- Tehokkaat virheenkorjaustekniikat
- Mockit ja testikaksoisolennot Node.js:ssä