Menulis pengujian unit bisa jadi sulit dan terkadang desain yang bagus harus dikorbankan hanya demi tujuan pengujian. Seringkali kemampuan pengujian berhubungan dengan desain yang baik, namun hal ini tidak selalu terjadi. Misalnya kelas dan metode final tidak dapat digunakan, metode privat terkadang perlu dilindungi atau dipindahkan ke kolaborator jika tidak perlu, metode statis harus dihindari sepenuhnya dan seterusnya hanya karena keterbatasan kerangka kerja yang ada.
PowerMock adalah kerangka kerja yang memperluas perpustakaan tiruan lainnya seperti EasyMock dengan kemampuan yang lebih kuat. PowerMock menggunakan pemuat kelas khusus dan manipulasi bytecode untuk mengaktifkan tiruan metode statis, konstruktor, kelas dan metode akhir, metode pribadi, penghapusan inisialisasi statis, dan banyak lagi. Dengan menggunakan pemuat kelas khusus, tidak ada perubahan yang perlu dilakukan pada IDE atau server integrasi berkelanjutan yang menyederhanakan adopsi. Pengembang yang akrab dengan kerangka kerja tiruan yang didukung akan menganggap PowerMock mudah digunakan, karena seluruh API ekspektasinya sama, baik untuk metode statis maupun konstruktor. PowerMock bertujuan untuk memperluas API yang ada dengan sejumlah kecil metode dan anotasi untuk mengaktifkan fitur tambahan. Saat ini PowerMock mendukung EasyMock dan Mockito.
Saat menulis pengujian unit, sering kali berguna untuk melewati enkapsulasi dan oleh karena itu PowerMock menyertakan beberapa fitur yang menyederhanakan refleksi yang secara khusus berguna untuk pengujian. Hal ini memungkinkan akses mudah ke status internal, namun juga menyederhanakan ejekan parsial dan pribadi.
Harap dicatat bahwa PowerMock terutama ditujukan untuk orang-orang dengan pengetahuan ahli dalam pengujian unit. Menyerahkannya ke tangan pengembang junior mungkin lebih banyak merugikan daripada menguntungkan.
@PowerMockIgnore
global serta perbaikan bug dan peningkatan lainnya. Lihat catatan rilis dan ubah log untuk detailnya.Berita Lama
Harap baca pedoman untuk kontributor baru sebelum memulai.
Bergabunglah dengan milis di sini untuk pertanyaan, masukan dan dukungan.