Android'de test ve derleme: JUnit, Robolectric, Gradle ve CI
Gradle betiklerini ve bağımlılıkları yönetir, Kotlin ve Java kodunu JUnit ve Robolectric ile emülatörsüz test eder, lint ve R8 ile kalite kapıları kurar, hepsini bir CI hattına bağlarsın.
Seviye 201 · 22 ders · 18 pratik lab
Dersler
Gradle derinlemesine
- Derleme betikleri: Kotlin DSL ve sürüm katalogları
- Bağımlılıklar: yapılandırmalar ve geçişli bağımlılıklar
- Bağımlılık doğrulama: sağlama toplamları ve kilit dosyaları
- BuildConfig, yerel özellikler ve sırları depodan uzak tutmak
- Kısa görev: bağımlılık ağacında açığı bilinen geçişli kütüphaneyi bul ve yükselt
Birim testleri
- JUnit ile test yapısı: düzenle, çalıştır, doğrula
- Sahte nesneler: Kotlin'de MockK, Java'da Mockito
- Robolectric: Android sınıflarını emülatörsüz test etmek
- Coroutine ve Flow testleri
- Veri katmanını test etmek: Room ve sahte ağ sunucusu
- Kısa görev: giriş ekranı mantığı için sekiz testlik bir paket yaz
Kalite kapıları
- Lint: temel çizgi, önem düzeyleri ve özel kurallar
- Detekt ve ktlint ile kod kalitesi
- Test kapsamını ölçmek
- R8: küçültme, karartma ve keep kuralları
- Kısa görev: uyarı çıktığında derlemeyi durduran kalite kapısını kur
Sürekli tümleştirme
- Android için CI hattı: derle, test et, denetle
- CI'da sürüm imzalama ve anahtarın korunması
- Tekrarlanabilir derleme ve yapıt doğrulama
- Bağımlılık güncellemeleri ve yazılım malzeme listesi (SBOM)
- Kısa görev: CI betiğinde sızan imza parolasını bul ve düzelt
Bitirme
- Bitirme görevi: bir uygulamayı test, lint ve imzalı sürümü tek komutla üreten hatta bağla
Pratik lablar
- Bağımlılık ağacını çıkar ve bir kütüphaneyi bul: Gradle ile bağımlılık ağacını üret ve verilen kütüphanenin hangi sürümle geldiğini bul.
- Bilinen açığı olan geçişli kütüphaneyi yükselt: Ağaçta zafiyetli sürümü getiren bağımlılığı bul, sürümü zorla yükselt ve testleri çalıştır.
- Bağımlılık doğrulamasını aç ve bozuk paketi yakala: Özet doğrulamasını etkinleştir, değiştirilmiş bir kütüphanenin derlemeyi durdurduğunu göster ve kaydı düzelt.
- Depoya girmiş API anahtarını bul: Proje dosyalarında düz yazılmış anahtarı bul ve yerini raporla.
- Anahtarı yerel özellik dosyasına taşı: Anahtarı sürüm denetimi dışındaki dosyadan BuildConfig'e aktar ve derlemeyi doğrula.
- Sır taramasını derlemeye bağla: Depoda anahtar deseni bulunca derlemeyi durduran bir Gradle görevi ekle ve iki örnekle sına.
- Bir sınıf için düzenle-çalıştır-doğrula testi yaz: Sepet toplamı hesaplayan sınıf için üç test yaz.
- Ağ katmanını sahte nesneyle sına: Giriş deposunu MockK ile sahteleyip başarılı ve başarısız giriş durumlarını sına.
- Giriş mantığı için sekiz testlik takım yaz: Kilitlenme sayacı, boş alan ve belirteç saklama davranışını kapsayan test takımını yaz ve hepsini geçir.
- Robolectric ile bir tercih sınıfını sına: Ayar okuyan sınıfı JVM üzerinde çalışan bir testle doğrula.
- Room DAO'sunu bellek içi veritabanıyla sına: Ekleme, güncelleme ve silme sorgularını bellek içi veritabanında sına.
- Sahte web sunucusuyla hata durumlarını sına: 401 yanıtında belirtecin silindiğini ve yeniden giriş istendiğini gösteren testleri yaz.
- Lint'i çalıştır ve raporu oku: Projede lint çalıştır ve hata düzeyindeki bulguları listele.
- Uyarıda derlemeyi durduran kapı kur: Lint ve Detekt'i uyarıları hata sayacak biçimde ayarla, mevcut bulgular için temel çizgi oluştur.
- R8 keep kurallarını daralt: Bütün paketi koruyan kuralı yalnızca gereken sınıflara indir ve yayın derlemesinin testleri geçtiğini göster.
- Hat tanımındaki adımları sırala: Verilen CI dosyasında derleme, test ve denetim adımlarının sırasını ve eksik adımı bul.
- CI betiğinde sızan imza parolasını düzelt: Günlüğe yazdırılan imza parolasını bul, gizli değişkene taşı ve günlükte maskelendiğini doğrula.
- Yeniden üretilebilir derlemeyi doğrula: Aynı kaynaktan iki kez derle, çıktıların özetini karşılaştır ve farkın kaynağını bulup gider.
Kurs hakkında
Gradle betiklerini ve bağımlılıkları yönetir, Kotlin ve Java kodunu JUnit ve Robolectric ile emülatörsüz test eder, lint ve R8 ile kalite kapıları kurar, hepsini bir CI hattına bağlarsın.
Ne öğreneceksin
- Gradle derinlemesine
- Birim testleri
- Kalite kapıları
- Sürekli tümleştirme
- Bitirme
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.