Hello people with the spirit of learning!

Node.js memiliki sejumlah package di npm yang mempermudah proses menulis kode testing. Dalam tutorial ini, kami menggunakan dua modul Node paling populer untuk pengujian: Mocha dan Chai .

Mocha dan Chai dalam melakukan unit testing. Mocha merupakan framework untuk testing pada NodeJS, sedangkan Chai merupakan assertion library yang akan digunakan untuk mengetes kode.

1. Membuat aplikasi TODO

Kita akan membuat sebuah aplikasi todo list dari data dummy dan kita akan membuat file dan folder seperti gambar diatas.

Untuk mengelola data todo list. Kita perlu membuat file “app/todo/dummy.js” yang berisi data berbentuk array object. Selanjutnya, melakukan npm seperti gambar diatas.

perintah npm init akan membuat 1 file dengan nama package.json 

Lalu, install express sebagai frameworknya dan body-parser.

Lalu install beberapa dependency lainnya seperti gambar diatas.

dan tambahkan scripts yang ada di file package.json

perintah npm run test akan menjalan semua perintah testing yang ada di file tests project yang telah dibuat dan untuk perintah npm run dev untuk menjalan local development di komputer. 

sekarang buka file “app/todo/dummy.js” dan ketikan kode seperti gambar diatas.

sekarang buka file “app/todo/controller.js” dan ketikan kode seperti gambar diatas.

  • Baris pertama kita import todo list dummy yang data nya akan kita gunakan.
  • Method pertama, getAllTodos untuk mendapatkan semua data todo list dari data dummy dan mereturn data dengan status code HTTP 200.
  • Method kedua, findTodo digunakan untuk mendapatkan satu data dan mereturn data dengan status code HTTP 200. Jika data tidak ditemukan, akan mereturn dengan status code HTTP 404.

sekarang buka file “app/todo/router.js” dan ketikan kode seperti gambar diatas.

sekarang buka file “server.js” dan ketikan kode gambar diatas.

sekarang kita sudah dapat lakukan uji coba todo list kita di komputer dengan menjalan perintah “npm run dev” lalu buka postman dan hasil nya akan seperti berikut ini:

Endpoint get all todos
Endpoint get single todo
todo not found

kita telah berhasil melakukan testing aplikasi todo list yang telah dibuat dengan menggunakan postman. sekarang kita akan mencoba membuat automated testingnya.

2. Membuat Unit Testing

Aplikasi todo list kita telah berhasil dijalankan, tetapi kita perlu melakukan testing. Untuk memastikan dengan benar bahwa aplikasi yang kita buat sudah berjalan sesuai dengan apa yang kita harapkan dan mengurangi kemungkinan terjadinya bug dan error. Automated testing ditulis pada file tests/index.js, seperti gambar diatas.

  • Pada line pertama file, kita mengimpor semua package yang diperlukan untuk menjalankan unit testing, kemudian kita mengonfigurasi chai untuk menggunakan package chai-http. Kita juga mengonfigurasi chai untuk menggunakan antarmuka should dengan menjalankan chai.should (). Setiap blok describe digunakan untuk mengelompokkan pengujian dengan akses yang lebih mudah dan pengaturan yang lebih baik.
  • Pada blok it pertama, test yang menguji endpoint get(‘ /todos ‘) untuk mendapatkan semua data todo list, response harus memiliki status code 200 dan return harus berupa sebuah object.
  • Lalu blok it kedua, adalah test untuk endpoint get(‘/todos/${id}’) untuk mendapatkan data tunggal todo yang di query melalui id todo dan response harus memiliki status code 200 dan return harus berupa sebuah object.
  • Dan pada block it ketiga, masih test untuk endpoint get(‘/toods/${id}’) endpoint masih sama seperti it kedua tapi hanya berbeda response. Dengan asumsi jika data todo tidak ada, it response harus memiliki status code 404.

Sekarang kita akan mencoba menjalan hasil dari testing kita dengan perintah “npm run test” bila benar maka hasilnya akan seperti gambar diatas.

Selamat kita telah berhasil menyelesaikan “testing in node using mocha and chai”. oiya apabila kamu tertarik belajar lebih lanjut tentang Node JS kamu bisa join di Full Stack Javasctipt (MERN) . pada kelas tersebut kita akan membuat aplikasi booking hotel online. difokuskan kepada JavaScript (Full-Stack JavaScript Developer (MERN). M untuk MongoDB, E untuk ExpressJS, R untuk ReactJS, dan N untuk NodeJS. Kalian akan mempelajari semua hal tersebut pada kelas ini. Tapi bukan hanya sekedar ngoding aja namun kalian akan mulai dari bagian UI dan UX sehingga paham betul bagaimana caranya membangun suatu website yang memiliki better experience.

Selamat mencoba dan selamat belajar!