Testing di Custom Script - Contoh Dasar
Di sini kita akan mencoba membuat testing sederhana pada custom script.
Untuk referensi, lihat: mocha, chai dan pactum.
Mari ikuti langkah-langkah berikut:
Buat sebuah project MBaaS (JavaScript).
Unduh script contoh 1 dan ekstrak ke project tersebut. Di dalam situ ada:
- sebuah custom script:
hello-you
, - dan sebuah shared script:
testing-constants
.
- sebuah custom script:
Buka file
scripts/hello-you/index.js
. Sejajar dengan bagian tabs, di sisi kanan ada tombol-tombol action. Klik Run Test.
Maka akan terbuat sebuah file dengan namaindex.test.js
.Di dalam file
index.test.js
tersebut, perhatikan ada beberapa teks mengambang di atas baris tertentu, yang disebut CodeLens.
Jika di situ diklik Run suite, maka semua kasus uji akan dijalankan, lalu akan terjadi split editor yang menampilkan laporan pengujian (testing report).
Dan jika diklik salah satu Run test, maka hanya satu kasus uji yang akan dijalankan, dan laporan pengujiannya pun hanya untuk kasus tersebut.
Tentu saja di tahap ini yang dijalankan itu belum ada isinya.Sekarang ubah isi file
index.test.js
dengan kode berikut:const {chai: { expect },pactum: { spec },} = require("@mocobaas/server-sdk").testing;const { baseUrl } = require("@mocobaas/shared/testing-constants");const {trigger: { path },} = require("./config.json");const scriptUrl = baseUrl + path;describe("hello-you", () => {it("use chai", () => {expect(scriptUrl).to.equal("http://localhost:3000/webhook/hello-you");});it("use pactum - default hello", async () => {await spec().post(scriptUrl).withJson({}).expectStatus(200).expectBody("Hello, my friend!");});it("use pactum - named hello", async () => {await spec().post(scriptUrl).withJson({ name: "Osman" }).expectStatus(200).expectBody("Hello, Osman!");});it("use pactum - invalid data type", async () => {await spec().post(scriptUrl).withJson({ name: 12345 }).expectStatus(400).expectJsonLike([{dataPath: ".name",params: { type: "string" },},]);});});Klik Run suite. Tunggu proses persiapan dan pengujian dilakukan, hingga tampil laporan. Seharusnya semua kasus uji mendapat hasil "Passed" (centang hijau).
Demikian cara melakukan testing di custom script.
Berikutnya, mari kita bedah beberapa hal terkait kode pengujian di atas:
- Ada satu kasus
it("use chai")
, di dalamnya dicontohkan cara penggunaanchai.expect
. Kita memastikan nilai dariscriptUrl
, yang mana dia digunakan pada kasus-kasus lainnya. - Ada beberapa kasus
it("use pactum")
, di dalamnya dicontohkan cara penggunaanpactum.spec
, yang ketika dijalankan akan terjadi network request. - Pada kasus kedua dan ketiga, kita mengharapkan hasil HTTP status 200, yang mana itu adalah kode success. Biasanya ini disebut Positive Case.
- Pada kasus terakhir, kita mengharapkan hasil HTTP status 400, yang mana itu adalah kode error. Biasanya ini disebut Negative Case.