Rumah >hujung hadapan web >tutorial js >Ujian Bahagian Belakang

Ujian Bahagian Belakang

王林
王林asal
2024-07-17 08:22:56348semak imbas

Back-End Testing

Rancangan Kandungan

1. Pengenalan kepada Ujian Bahagian Belakang

  • Terangkan secara ringkas kepentingan ujian dalam pembangunan perisian.
  • Serlahkan fokus pada menguji API Node.js secara khusus.
  • Perkenalkan Mocha dan Chai sebagai alat pilihan untuk tutorial ini.

2. Menyediakan Persekitaran

  • Prasyarat: Node.js, npm, penyunting teks (seperti Kod VS).
  • Arahan langkah demi langkah untuk menyediakan projek Node.js baharu:

     mkdir backend-testing
     cd backend-testing
     npm init -y
     npm install express mocha chai supertest --save-dev
    
  • Penjelasan pakej yang dipasang:

    • ekspres: Untuk membuat sampel API.
    • mocha: Rangka kerja ujian.
    • chai: Pustaka penegasan.
    • supertest: Untuk membuat penegasan HTTP.

3. Mencipta API Mudah dengan Express

  • Kod contoh untuk pelayan Express asas dengan beberapa titik akhir:

     // server.js
     const express = require('express');
     const app = express();
    
     app.get('/api/hello', (req, res) => {
       res.status(200).json({ message: 'Hello, world!' });
     });
    
     app.listen(3000, () => {
       console.log('Server is running on port 3000');
     });
    
     module.exports = app;
    
  • Penjelasan struktur API dan titik akhir.

4. Menulis Ujian Pertama Anda dengan Mocha dan Chai

  • Mencipta direktori ujian dan fail ujian asas:

     mkdir test
     touch test/test.js
    
  • Menulis ujian mudah:

     // test/test.js
     const request = require('supertest');
     const app = require('../server');
     const chai = require('chai');
     const expect = chai.expect;
    
     describe('GET /api/hello', () => {
       it('should return a 200 status and a message', (done) => {
         request(app)
           .get('/api/hello')
           .end((err, res) => {
             expect(res.status).to.equal(200);
             expect(res.body).to.have.property('message', 'Hello, world!');
             done();
           });
       });
     });
    
  • Penjelasan kod ujian:

    • Menggunakan supertest untuk membuat permintaan HTTP.
    • chai jangkakan sintaks untuk penegasan.
    • Panggil balik yang dilakukan untuk mengendalikan ujian tak segerak.

5. Menjalankan Ujian

  • Cara menjalankan ujian menggunakan Mocha:

     npx mocha
    
  • Mentafsir keputusan ujian.

6. Kes Ujian Tambahan

  • Menulis lebih banyak kes ujian untuk senario yang berbeza:
    • Menguji ralat 404 untuk laluan yang tidak diketahui.
    • Menguji POST, PUT, PADAM titik akhir jika ada.
  • Contoh:

     describe('GET /api/unknown', () => {
       it('should return a 404 status', (done) => {
         request(app)
           .get('/api/unknown')
           .end((err, res) => {
             expect(res.status).to.equal(404);
             done();
           });
       });
     });
    

7. Amalan Terbaik untuk Ujian Bahagian Belakang

  • Pastikan ujian terpencil dan bebas.
  • Gunakan nama deskriptif untuk kes ujian.
  • Pastikan ujian anda meliputi pelbagai kes tepi.
  • Pergantungan mengejek apabila perlu.
  • Sepadukan ujian secara berterusan ke dalam aliran kerja pembangunan anda.

8. Kesimpulan

  • Ringkaskan pengambilan utama.
  • Galakkan pembaca untuk menggunakan teknik ini pada projek mereka sendiri.
  • Sediakan pautan ke sumber tambahan untuk pembelajaran lanjut.

9. Sumber Tambahan

  • Dokumentasi rasmi Mocha: Mocha
  • Dokumentasi rasmi Chai: Chai
  • Dokumentasi terbaik: Supertest
  • Artikel dan tutorial tentang ujian amalan terbaik.

10. Seruan Bertindak

  • Jemput pembaca berkongsi pengalaman mereka dan ajukan soalan dalam ulasan.
  • Cadangkan mereka melanggan artikel akan datang tentang pembangunan tindanan penuh dan DevOps.

Atas ialah kandungan terperinci Ujian Bahagian Belakang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn