Pengujian Integrasi Titik Akhir API
Laksanakan pengujian integrasi untuk mengesahkan interaksi antara komponen yang berbeza serta memastikan kefungsian API.
Pengujian Integrasi Titik Akhir API ialah pelajaran Kem Intensif Pembangunan Backend Node.js percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif Pembangunan Backend Node.js, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif Pembangunan Backend Node.js merangkumi sejumlah 4 pelajaran.
Apakah Pengujian Integrasi?
Selamat datang! Dalam pelajaran ini, kita akan mendalami pengujian integrasi untuk titik akhir API Node.js. Berbeza daripada pengujian unit (yang menguji bahagian kecil kod yang berasingan), pengujian integrasi mengesahkan bahawa bahagian berlainan dalam app anda berfungsi bersama seperti yang dijangkakan.
Untuk API, ini bermaksud memastikan titik akhir anda mengendalikan permintaan dengan betul, berinteraksi dengan pangkalan data atau perkhidmatan lain, serta mengembalikan respons yang betul.
Mengapakah Titik Akhir API Perlu Diuji?
API anda ialah cara utama klien luaran berinteraksi dengan bahagian belakang anda. Pengujian integrasi yang kukuh memastikan:
- Titik akhir memberikan respons dengan kod status HTTP yang betul.
- Data yang dihantar ke API diproses dan disimpan dengan betul.
- API mengembalikan format data yang dijangkakan (contohnya, JSON).
- Komponen yang berbeza (seperti penghalaan, perisian tengah dan pangkalan data) berintegrasi dengan lancar.
Hal ini membantu mengesan pepijat lebih awal yang mungkin terlepas daripada pengujian unit.
Alat Pengujian Penting
Untuk menguji titik akhir API Node.js kita, kita akan menggunakan beberapa alat utama:
- Jest: Pelaksana pengujian dan pustaka penegasan kita (diperkenalkan dalam Pelajaran 1).
- Supertest: Pustaka yang direka untuk menguji pelayan HTTP. Pustaka ini memudahkan penghantaran permintaan dan penegasan terhadap respons.
- Express: Rangka kerja web kita untuk membina API itu sendiri.
Menyediakan Supertest
Mula-mula, mari pasang pakej yang diperlukan. Kita memerlukan express untuk API contoh kita, serta jest dan supertest untuk pengujian.
Jalankan perintah ini dalam terminal projek anda:
npm install --save-dev express jest supertestApp Express Mudah Kita
Mari cipta app Express asas yang boleh kita uji. Kita akan mentakrifkan beberapa laluan mudah.
Perhatikan bahawa kita mengeksport tika app, yang akan digunakan oleh Supertest untuk membuat permintaan secara terus tanpa perlu memulakan pelayan langsung pada sesuatu port.
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}`);
});
}Menguji Titik Akhir GET
Sekarang, mari tulis pengujian integrasi pertama kita. Kita akan menggunakan supertest untuk membuat permintaan GET kepada titik akhir akar / kita dan membuat penegasan terhadap responsnya.
Cipta fail seperti app.test.js dan tambahkan yang berikut:
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!');
});
});Membuat Penegasan terhadap Respons JSON
API sering mengembalikan data JSON. Supertest memudahkan akses kepada isi JSON yang dihuraikan daripada respons menggunakan res.body.
Mari uji titik akhir /data kita untuk memastikan titik akhir tersebut mengembalikan objek JSON yang betul:
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');
});
});Menguji Permintaan POST
Menguji permintaan POST adalah serupa, tetapi kita akan menggunakan .post() dan selalunya .send() untuk melampirkan isi permintaan.
Titik akhir /echo kita hanya mengembalikan apa jua JSON yang diterimanya. Mari uji fungsi tersebut:
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);
});
});Interaksi Pangkalan Data & Pembersihan
Apabila menguji API yang berinteraksi dengan pangkalan data, anda biasanya akan:
- Menggunakan pangkalan data pengujian khusus untuk mengelakkan data pembangunan anda tercemar.
- Mengosongkan pangkalan data sebelum setiap kumpulan pengujian atau kes pengujian (menggunakan cangkuk
beforeEach/afterEach). - Mengisi data awal jika data tertentu diperlukan untuk sesuatu pengujian.
Hal ini memastikan pengujian adalah bebas dan boleh diulang.
Senario Pengujian API
Anda sedang menguji titik akhir API Node.js /users yang menerima permintaan POST untuk mencipta pengguna baharu. Antara pernyataan berikut, yang manakah TRUE tentang pengujian integrasi titik akhir ini?
Ulang Kaji: Pengujian Integrasi
Syabas! Anda telah mempelajari asas pengujian integrasi untuk titik akhir API Node.js:
- Maksudnya: Mengesahkan bahawa komponen berfungsi bersama, terutamanya untuk permintaan API.
- Alat: Menggunakan Supertest bersama Jest untuk mensimulasikan permintaan HTTP.
- Kaedah: Menghantar permintaan GET/POST serta membuat penegasan terhadap kod status, kandungan isi dan jenis data.
- Amalan Terbaik: Mempertimbangkan pangkalan data pengujian khusus untuk pengasingan.
Hal ini memastikan API anda kukuh dan boleh dipercayai!
Pelajari JavaScript dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 22
- Pelajaran
- 92
Soalan Lazim
Adakah pelajaran “Pengujian Integrasi Titik Akhir API” percuma?
Ya — teks penuh “Pengujian Integrasi Titik Akhir API” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Kem Intensif Pembangunan Backend Node.js, tingkat taraf kepada CoddyKit PRO. Kursus Kem Intensif Pembangunan Backend Node.js merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pengujian Integrasi Titik Akhir API”?
Laksanakan pengujian integrasi untuk mengesahkan interaksi antara komponen yang berbeza serta memastikan kefungsian API. Anda berlatih Kem Intensif Pembangunan Backend Node.js menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif Pembangunan Backend Node.js?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif Pembangunan Backend Node.js di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Pengujian Integrasi Titik Akhir API” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif Pembangunan Backend Node.js ini?
Ya. Setiap pelajaran Kem Intensif Pembangunan Backend Node.js menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Ujian Unit dengan Jest
- Pengujian Integrasi Titik Akhir API
- Teknik Penyahpepijatan Berkesan
- Penduplikatan dan Pengganti Ujian dalam Node.js