npm install ava
npm run test
AVA mau kalian?
Dalam kehidupan sebagai programmer yang mengikuti paham TDD, kita dianjurkan untuk selalu melakukan unit test terhadap kode yang kita tulis.
Untuk menjalankan unit test kita perlu test runner. Dan di dunia JavaScript, begitu banyak test runner maupun test framework yang bertebaran, misal: mocha, jasmine, jest, tap, tape, AVA, dll.
Saya sudah pernah memakai Mocha dan Tape. Pengalaman saya Mocha itu ribet saat bikin test case dan Tape harus bikin reporter sendiri agar sesuai keinginan saya.
Akhirnya saya menemukan AVA. Test runner bikinan Sindresorhus ini menarik perhatian saya karena iming-iming kecepatan, sudah mendukung ES2015 untuk kode test case, juga penulisan test case yang lumayan sederhana mirip tap atau tape.
Saya mulai mengimplementasikan AVA di beberapa proyek baru. Saya lumayan senang dengan hasilnya. Kemudahan dan kesederhanaan AVA mempercepat proses kerja saya.
Dan mulai versi 0.13, AVA sudah mempunyai sistem monitor berkas apa saja yang berubah, kemudian menjalankan test lagi. Bonus, yang diproses hanya test yang berubah saja, bukan mengulang proses dari awal. Fitur ini dapat diaktifkan dengan menambah parameter --watch
saat menjalankan AVA.
npm run test -- --watch
Workflow
Pada proses kerja saya saat ini, yang saya lakukan pertama kali adalah membuat berkas package.json dan memasang AVA. Kemudian menulis unit test, setelahnya menulis kode aplikasi yang akan dibuat.
import test from 'ava';
import {add} from './script';
test('Penjumlahan', t => {
t.is(add(1, 1), 2, 'Hasilnya harus penjumlahan kedua parameter');
});
script.test.js
function add (a, b) {
return a + b;
}
module.exports = {add}
script.js
Kenapa script.js memakai ES5, AVA belum mendukung ES2015 untuk module yang diimpor lihat di sini.
Browser & React
AVA belum berjalan secara native di peramban, jika kalian ingin melakukan tes di lingkungan peramban, ada resep yang bisa dipakai di dokumentasi ini.
Ada juga resep untuk mengetes aplikasi React. Konfigurasi AVA dan React cukup mudah. Bisa ditemukan di sini.
Jadi, kalian mau AVA?