Pertanyaan yang Sering Diajukan - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pertanyaan yang Sering Diajukan

Saya memiliki fungsi Lambda yang melakukan perhitungan dan mengembalikan hasil tanpa memanggil layanan lain. Apakah saya benar-benar perlu menguji ini di cloud?

Ya. Fungsi Lambda memiliki parameter konfigurasi yang dapat mengubah hasil pengujian. Semua kode fungsi Lambda memiliki ketergantungan pada pengaturan batas waktu dan memori, yang dapat menyebabkan fungsi gagal jika tidak disetel dengan benar. Kebijakan Lambda juga memungkinkan pencatatan keluaran standar ke Amazon. CloudWatch Bahkan jika kode Anda tidak menelepon CloudWatch secara langsung, izin diperlukan untuk mengaktifkan logging, dan izin itu tidak dapat diejek atau ditiru secara akurat.

Bagaimana pengujian di cloud dapat membantu pengujian unit? Jika ada di cloud dan terhubung ke sumber daya lain, bukankah itu tes integrasi?

Kami mendefinisikan pengujian unit sebagai tes yang beroperasi pada komponen arsitektur secara terpisah. Definisi ini tidak selalu menghalangi penggunaan panggilan layanan atau komunikasi jaringan lainnya.

Banyak aplikasi tanpa server memang memiliki komponen arsitektur yang dapat diuji secara terpisah, bahkan di cloud. Contoh dasar adalah fungsi Lambda yang mengambil beberapa input, menafsirkannya, dan mengirim pesan ke antrian SQS. Tes unit dari fungsi semacam itu kemungkinan akan menguji apakah nilai input menghasilkan nilai tertentu yang ada dalam pesan antrian. Pertimbangkan tes yang ditulis dengan menggunakan pola Arrange, Act, Assert:

  • Atur: Alokasikan sumber daya (antrian untuk menerima pesan, dan fungsi yang sedang diuji).

  • Tindakan: Panggil fungsi yang sedang diuji.

  • Tegaskan: Ambil pesan yang dikirim oleh fungsi, dan validasi output.

Pendekatan pengujian tiruan akan melibatkan mengejek antrian dengan objek tiruan dalam proses, dan membuat instance dalam proses dari kelas atau modul yang berisi kode fungsi Lambda. Selama fase Assert, pesan antrian akan diambil dari objek yang diejek.

Dalam pendekatan berbasis cloud, pengujian akan membuat antrian SQS untuk tujuan pengujian, dan akan menerapkan fungsi Lambda dengan variabel lingkungan yang dikonfigurasi untuk menggunakan antrian SQS yang terisolasi sebagai tujuan keluaran. Setelah menjalankan fungsi Lambda, pengujian akan mengambil pesan dari antrian SQS.

Pengujian berbasis cloud akan menjalankan kode yang sama, menegaskan perilaku yang sama, dan memvalidasi kebenaran fungsional aplikasi. Namun, itu akan memiliki keuntungan tambahan karena dapat memvalidasi pengaturan fungsi Lambda: peran IAM, kebijakan IAM, dan batas waktu dan pengaturan memori fungsi.