Mengenal Unit test, Widget test, Integration test pada Flutter
Semakin banyak fitur yang dimiliki dalam sebuah aplikasi, semakin sulit menguji dengan manual. Pengujian otomatis membantu memastikan bahwa pengujian aplikasi anda bekerja dengan benar sebelum anda mempublikasikannya, sambil pertahankan fitur dan kecepatan memperbaiki bug.

Pengujian otomatis terdapat 3 kategory:
- A unit test tests a single function, method atau class.
- A widget test (dalam framework IU lain disebut sebagai uji component).
- An integratioin test menguji aplikasi lengkap atau sebagian besar aplikasi.
Secara umum, aplikasi yang telah teruji dengan baik memiliki banyak pengujian unit dan widget, yang dilacak berdasarkan cakupan kode, ditambah integration test yang cukup untuk mencakup semua khusus penggunaan yang penting. Saran ini didasarkan pada fakta bahwa ada trade-off antara berbagai jenis test.
Baca Juga : Apa itu TDD (Test Driven Development)
Unit tests
Unit test menguji satu fungsi, method, atau class. Tujuan dari unit test adalah untuk memverfikasi kebenaran unit logika di berbagai kondisi. Ketergantungan eksternal dari unit yang diuji umumnya mocked out. Unit test umumnya tidak membaca dari atau menulis ke disk, merender ke layar, atau menerima tindakan pengguna dari luar proses yang menjalankan tests. untuk informasi lebih lanjut menenai unit test, anda dapat melihat dengan menjalankan flutter test โhelp di terminal anda.
Resource
- An introduction to unit testing
- Mock dependencies using Mockito
- An introduction to widget testing
- Find widgets
- Handle scrolling
- Tap, drab, and enter text
Widget tests
Widget test (dalam framework IU lain disebut sebagai uji component) menguji satu widget. Tujuan widget test adalah untuk memverfikasi bahwa UI widget terlihat dan berinteraksi seperti yang di harapkan. Widget test melibatkan beberapa kelas dan memperlukan lingkunan test yang menyediakan lifecycle context widget yang sesuai.
Misalnya, widget yang sedang diuji harus dapat menerima dan merespons tindakan dan peristiwa pengguna, melakukan tata letak, dan membuat instance child widget. Oleh karena itu, widget test lebih komperhensif daripada unit test. Namun, seperti unit test, lingkungan widget test diganti dengan implementasi yang jauh lebih sederhana daripada sistem UI lengkap.
Integration tests
Integration tests menguji aplikasi lengkap atau sebagian besar aplikasi. Tujuan dari integration test adalah untuk memverfikasi bahwa semua widget dan layanan yang diuji bekerja sama seperti yang diharapkan. Selanjutnya, anda dapat menggunakan Integration test untuk memverfikasi kinerja aplikasi anda.
Umumnya, inregration test berjalan pada perangkat nyata atau emulator OS, seperti iOS Simulator atau Android Emulator. Aplikasi yang sedang diuji biasanya diisolasi dari kode driver test untuk menghindari hasil yang miring.
Resource:
Continuous integration services
Layanan continuous integration (CI) memungkinkan anda menjalankan pengujian secara otomatis saat melakukan push perubahan code baru. Ini memberikan umpan balik tepat waktu tentang apakah perubahan kode berfungsi dseperti yang diharapkan dan tidak menimbulkan bug.
Untuk informasi tentang menjalankan tests pada berbagai continuous integration service, lihat berikut ini: