Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Test-Driven Development with Mocha & Chai

Sebastianus Sembara
June 26, 2021
29

Test-Driven Development with Mocha & Chai

Sebastianus Sembara

June 26, 2021
Tweet

Transcript

  1. Software Testing 1. Membuat daftar spesifikasi dari software 2. Membuat

    perangkat lunak sesuai dengan daftar spesifikasi 3. Melakukan pengujian perangkat lunak yang telah dibuat, Apakah telah sesuai dengan daftar spesifikasi ?
  2. Setelah 2 bulan berlangsung, tiba tiba client meminta improvement terhadap

    aplikasi yang telah dibuat dulu, namun sang developer merasa takut karena lupa kodingan nya sendiri :P
  3. Potensi Bug improvement 1. Lupa workflow yang telah dibuat 2.

    Perubahan struktur database/ script 3. Proses migrasi data
  4. “Solusi tradisional dari permasalahan ini adalah mengetes secara manual fitur

    satu persatu” Solusi ini benar dan tidak salah sama sekali, namun akan memakan waktu yang cukup lama
  5. Testing-Driven Development Sebuah metode pengembangan perangkat lunak dengan menulis “kode

    pengujian” terlebih dahulu sebelum menulis “kode perangkat lunak” , sehingga developer akan melakukan pengembangan perangkat lunak dengan mengacu pada kode pengujian yang telah dibuat di awal
  6. ADD TEST Membuat kode pengujian REFACTOR Refactor kode perangkat lunak

    agar lebih clean code WATCH TEST FAIL Menjalankan kode pengujian, pasti gagal :) RUN TESTS Menjalankan kode pengujian, hingga mendapatkan nilai sukses WRITE CODE Menulis kode perangkat lunak TEST-DRIVEN DEVELOPMENT Konsep Penerapan TDD
  7. How To Prerequisite NodeJS : Javascript Runtime Server Mocha :

    Framework Test Chai : Assertion Test Supertest : HTTP Test
  8. Code - Test describe('Addition', () => { it('1 + 1

    should be equal to 2', () => { expect(calculator.add(1, 1)).to.equal(2); expect(calculator.add(1, 2)).to.equal(3); }) it('should sum two numbers', () => { expect(calculator.add(2, 2)).to.equal(4); expect(calculator.add(50, 39)).to.equal(89); }) })
  9. Code - Controller const add = (a, b) => a

    + b; const subtract = (a, b) => (a - b); const multiplication = (a, b) => (a * b); module.exports = { add, subtract, multiplication };
  10. Manfaat 1. Memandu developer dalam proses development 2. Mempercepat proses

    development, karena meminimalisir testing manual 3. Menambah percaya diri developer
  11. Refrensi 1. Testing Laravel: Tentang TDD (Test-Driven Development), By Nafies

    Luthfi 2. Test Driven Development, Penting? , By Muhamad Lutfi Arif 3. TDD Menggunakan Mocha dan Chai di Nodejs, By Nusendra 4. How to make tests using chai and mocha?, By Sam Baros