Cara menggunakan JSDOM pada JavaScript
Show
**Jest **dan **Enzyme **adalah alat yang semakin populer yang dapat Anda gunakan untuk menguji build UI dengan ag-Grid. Dalam posting ini kami menunjukkan kepada Anda cara mengaturnya untuk menguji ag-Grid dan menguji panel tombol yang mengubah status instance ag-Grid. Kami akan mendemonstrasikan dan membandingkan dua pendekatan berbeda untuk menulis pengujian kami - menanyakan JSDOM dan menggunakan API ag-Grid. Di bawah ini adalah demo proyek yang akan kami uji. Aplikasi ini ditulis dalam **React**dan tersedia di GitHub . #testing #jest #enzyme # ag-grid #jsdom #api Menguji ag-Grid dengan Jest dan Enzyme - JSDOM vs ag-Grid APIPelajari cara menggunakan Jest dan Enzyme untuk menguji aplikasi yang dibuat dengan ag-Grid - siapkan lingkungan pengujian Anda dan pilih pendekatan pengujian terbaik. Anda dapat mengetes komponen React mirip dengan mengetes kode JavaScript lainnya. Ada beberapa cara untuk mengeteskomponen pada React. Secara umum, terbagi menjadi dua kategori:
Bagian dokumentasi ini berfokus pada strategi tes untuk kasus pertama. Sementara tes end-to-end secara menyeluruh bisa sangat berguna untuk mencegah regresi terhadap alur kerja yang penting, tes semacam itu tidak diperhatikan terutama pada komponen React, dan berada di luar cakupan bagian ini. TradeoffsSaat memilih kakas pengetesan, perlu mempertimbangkan beberapa tradeoffs:
Jawaban yang berbeda mungkin berlaku untuk tim dan produk yang berbeda. Kakas yang direkomendasikanJest adalah test runner pada JavaScript yang memungkinkan Anda mengakses DOM melalui React Testing Library adalah seperangkat helpers yang memungkinkan Anda mengetes komponen pada React tanpa bergantung pada detail implementasinya. Pendekatan ini membuat refactoring menjadi mudah dan juga mendorong Anda untuk menerapkan best practices untuk aksesbilitas. Mungkin tidak memberikan cara untuk me-render secara “dangkal” pada sebuah komponen tanpa anak, test runner seperti Jest yang memungkinkan Anda melakukan mocking. Pembelajaran lainnyaBagian ini terbagi dalam dua halaman:
Ketika Anda memutuskan untuk belajar Javascript, maka hal utama yang harus Anda pelajari adalah DOM. Lantas apa itu DOM di Javascript? DOM merupakan kependekan dari Document Object Model, DOM ini yakni object model standar bagi XML dan HTML yang memiliki sifat platform independent. Saat membuka sebuah halaman web pada browser, maka file HTML dari web akan dimuat serta ditampilkan pada layar perangkat. Nah, saat proses render file HTML berlangsung, browser akan membuat DOM atau model objek dokumen yang merupakan model berorientsi objek dari struktur logicnya. Objek dari dokumen tersebut menyediakan sekumpulan fungsi serta data atau atribut yang dapat dimanfaatkan ketika membuat program Javascript. Hal inilah yang dimaksud dengan API (Applicatio Programming Interface). Untuk lebih jelasnya, silahkan simak ulasannya lengkap berikut ini. Baca juga : dasar dasar pemrograman PHP Apa itu DOM di Javascript?Sebenarnya, DOM tidak hanya ada di Javascript saja namun juga terdapat pada bahasa pemrograman lain. Di tingkat paling dasar, situs sebuah web terdiri atas dokumen HTML serta CSS. Browser membuat representasi dokumen yang biasa disebut dengan DOM (Document Object Model). Dokumen tersebut memungkinkan Javascript dapat mengakses serta memanipulasi elemen dan juga style situs web. Model ini diatur dalam struktur ojek serta mendefinisikan:
Objek dokumen merupakan model dokumen HTML yang berisi kumpulan fungsi serta atribut berupa objek berdasarkan elemen HTML yang dapat diilustrasikan dengan bentuk pohon seperti di bawah ini: Struktur seperti pohon ini akan memudahkan Anda dalam memakai elemen tertentu. Elemen-elemen di atas disebut node. Tidak hanya elemen, namun atribut elemen dan teks juga memiliki node tersendiri, yaitu attribute-node untuk atribut elemen dan text- node untuk teks. DOM DocumentDOM Document merupakan semua objek yang terdapat dalam halaman web Anda. ketika ingin mengakses objek apa pun pada halaman web, maka Anda akan selalu mengawalinya dengan dokumen tersebut. terdapat begitu banyak method dan juga properties enting yang dapat Anda gunakan guna memodifikasi serta mengakses situs web. Cara Mendapatkan Elemen HTMLMendapatkan Elemen dengan Nama KelasgetElementByClassName() adalah method yang bisa menghasilkan lebih dari satu objek. Dari sini Anda akan memperoleh seluruh item dengan kelas list-item lalu menyimpannya ke dalam variabel.
Mendapatkan Elemen dengan IDAnda juga bisa memperoleh lebih dari satu objek jika menggunakan method getElementById(). Perhatikan contoh berikut ini:
Dari situlah Anda akan mendapatkan elemen dengan id header-title, kemudian akan disimpan ke dalam variabel. Mendapatkan Elemen dengan Nama TagAnda juga bisa mendapatkan elemen nama tag dengan method getElementBtTagName(). Seperti contoh di bawah ini:
Dari sini Anda akan memperoleh semua elemen li dari dokumen HTML kemudian akan menyimpannya ke dalam variabel. QueryselectorMethod querySelector() dapat membantu Anda untuk mengembalikan elemen pertama yang sesuai dengan CSS selector yang sebelumnya telah ditentukan. Hal ini berarti bahwa Anda dapat memperoleh elemen dengan kelas, id, tag serta semua CSS selector yang valid. Di bawah ini merupakan daftar beberapa pilihan yang terpopuler. Get by class :
Get by id :
Get by tag :
Memperoleh Elemen yang Lebih Spesifik Ingin memperoleh elemen yang lebih spesifik? Tenang saja, dengan CSS Selector Anda juga dapat memperoleh elemen yang lebih spesifik. Yaitu: document.querySelector(“h2.heading”); Contoh di atas adalah ketika Anda mencari kelas dan tag secara bersamaan serta mengembalikan elemen pertama yang melalui CSS Selector. QueryselectorallJika sebelumnya Anda telah memahami tentang method querySelector(), maka method querySelectorAll() ini dapat dikatakan sepenuhnya sama atau serupa dengan method querySelector() tersebut. Hanya saja memiliki perbedaan ketika mengembalikan semua elemen yang sama dengan CSS Selector.
Dalam contoh di atas, Anda akan memperoleh semua tag h2 yang mempunyai kelas heading dan selanjutnya disimpan dalam array. Menambah dan Menghapus ElemenHTML DOM akan memungkinkan Anda untuk menambah elempen baru maupun menghapus elemen yang sebelumnya sudah ada. Menambahkan ElemenSebagai contoh, Anda hanya akan membuat elemen div dengan method createElement() yang mengambil tagname untuk parameternya dan kemudian disimpan ke dalam variabel. Jika sudah, Anda hanya perlu memberikan beberapa konten lalu memasukkannya ke dokumen DOM. Di bawah ini contoh sintaks yang digunakan untuk menambahkan elemen:
selanjutnya, Anda akan membuat konten dengan method createTextNode() menggunakan sebuah String untuk parameternya dan memasukkan elemen div yang baru sebelum div yang lama ada dalam dokumen Anda.
Menghapus ElemenDari sini Anda akan memperoleh elemen serta menghapusnya dengan method removeChild(). Nah, berikut ini adalah contok sintkas yang digunakan untuk menghapus elemen:
Mengganti ElemenUntuk mengganti elemen, coba perhatikan contoh sintaks berikut ini:
Dari sintkas di atas, Anda bisa mengganti elemen dengan method replaceChild(). Di mana argumen pertama merupakan elemen baru, sementara argumen kedua merupakan elemen yang ingin diganti. Selain cara-cara sebelumnya, ternyata Anda juga bisa menulis ekspresi HTML serta JavaScript langsung pada HTML outpit stream dengan method write(). Perhatikan sintaks di bawah ini:
Anda juga bisa meneruskan ekspresi JavaScrip, misalnya objek tanggal. Sehingga:
Selain itu, method write() juga bisa mengambil beberapa argumen yang nantinya akan ditambahkan ke dokumen yang disesuaikan dengan kemunculannya. Mengubah Elemen HTMLHTML DOM memungkinkan pengguna untuk mengubah style serta konten dari elemen HTML dengan cara mengubah propertinya. Mengubah Nilai ArtibutDOM memungkinkan Anda untuk mengubah nilai atribut. Sebagai contoh, Anda akan mengubah src dari seluruh tag Dari contoh di atas, Anda memilih elemen dengan method document.getElementById(), kemudian membuat objek untuk elemen tersebut. Jika sudah, maka Anda dapat melakukan apapun seperti yang diinginkan, misalnya mengubah style dan teks CSS. Akan tetapi jika elemen yang dipilih lebih dari satu, misalnya atribut class atau nama tag maka elemen tersebut menjadi sebaug array. Yang mana array akan berisi DOM dari elemen-elemen yang telag Anda pilih. Misalnya:
Pada contoh di atas, Anda mempunyai tiga paragraf yang dinamai dengan class paragraf. Kemudian Anda bisa menggunakan method getElemenByClassName() untuk memilih tida paragraf tersebut melewati Javascript. Dan lihat hasilnya dalam console Javascript di bawah ini. Variabel paragraf akan memuat sebuah array yang mana array tersebut berisi tiga buah objek DOM paragraf. Hal lain juga bisa Anda lakukan, misalnya mengubah warna teks paragraf pertama. Paragraf pertama berada di posisi indeks 0 di dalam array, sehingga sintkas yang akan diinput dalam console Javasript yaitu:
Dengan begitu, warna teks paragraf pertama pun menjadi warna merah. Berhasil bukan? sekarang coba untuk membuat sebuah animasi warna dengan mengubah kode javascript tersebut menjadi :
Taksis tersebut menggunakan method setInterval() dan method setTimeOut() sebagai durasi waktu animasi. Pada kode tersebut, interval atau rentang waktu diatur selama 1000 milidetik atau 1 detik. Sementara untuk berubah warna menjadi hitam, kode tersebut diberi interval 500 milidetik atau setara setengah detik. Dengan begitu, ketiga paragraf tersebut akan berubah dari warna masing-masing ke warna hitam secara bergantian sesuai dengan interval waktu yang diberikan. Kini Anda sudah mengerti bukan apa itu DOM di Javascript dan berbagai method yang dimiliki? Pada dasarnya, DOM tidak hanya digunakan pada Javascript saja melainkan juga terdapat di bahasa pemrograman lain dalam kegunaan yang lebih luas. |