• Buradasın

    AssertJ Kullanarak Test Kodlarını Akıcı Hale Getirme Eğitimi

    youtube.com/watch?v=eU0PjbLZiqw

    Yapay zekadan makale özeti

    • Bu video, bir eğitim içeriği olup, izleyicilere AssertJ kütüphanesi kullanarak test kodlarını nasıl daha okunaklı ve anlaşılır hale getirebileceklerini göstermektedir.
    • Video, öncelikle AssertJ ile dosya ve exception eşleştirme örnekleriyle başlayıp, ardından müşteri servisi ve yardımcı sınıfları kullanarak daha karmaşık bir test senaryosu sunmaktadır. Eğitmen, önce normal AssertJ kullanımı gösterdikten sonra, kendi asset sınıflarını yazarak test kodlarının daha akıcı ve okunabilir hale getirilebileceğini adım adım anlatmaktadır. Özellikle CustomerService sınıfı üzerinden, isSave, hasWelcomeNotification, hasGifts gibi özel asset sınıfları oluşturarak test kodlarının nasıl daha anlaşılır hale getirilebileceği gösterilmektedir.
    AssetDeath ile Dosya Eşleştirme
    • Bu derste AssetDeath kullanarak dosya ve istisnaları nasıl eşleştirebileceğimiz öğreneceğiz.
    • File nesnesi oluşturup "test text" adlı dosyaya bağladık ve dosyanın içeriğini görebiliyoruz.
    • AssetDeath ile dosya için okunabilirlik, yazılabilirlik, uzantı ve dosya ismi gibi birçok eşleştirme yapabiliriz.
    00:43Dosya İçeriği Kontrolü
    • Dosyanın içeriğini kontrol etmek için AssetDeath içine contentOf metodunu kullanıyoruz.
    • ContentOf metodu string geri verdiği için normal bir string nesnesine uyguladığımız her şeyi burada da kullanabiliriz.
    • Yeni bir test metodu ekleyerek hataları nasıl kontrol edeceğimizi göreceğiz.
    01:11Hata Kontrolü
    • MailServerNotFound hata nesnesi oluşturup AssetDeath içine veriyoruz.
    • AssetDeath birçok yardımcı metot sunuyor, örneğin hasMessage ile hata mesajını test edebiliriz.
    • isInstanceOf ile hangi tip hata olduğunu kontrol edebilir veya hata mesajının içindeki bir bölümü test edebiliriz.
    02:02AssetDeath Kütüphanesi ve Sınıflar
    • Bu bölümde AssetDeath kütüphanesinin sunduğu yöntemlerle kendi Asset sınıflarımızı yazıp testlerimizi daha okunaklı hale getirebileceğimizi göreceğiz.
    • Türkçe olarak kullanılan müşteri servis ve yardımcı sınıflarını İngilizceye çevirip yeni bir package altına kopyaladık.
    • CustomerService sınıfı, CustomerRepository ve NotificationService sınıfları ile müşteri kaydı ve bilgilendirme işlemleri yapılıyor.
    02:56Müşteri Kaydı ve Test
    • CustomerService sınıfını çağırmak için handleNewCustomer metodunu kullanıyoruz ve username ile email parametrelerini veriyoruz.
    • Metot çağrıldığında yeni bir Customer nesnesi oluşturuluyor, hediye ekleniyor ve kaydediliyor.
    • CustomerService sınıfını test etmek için setup bölümünde repository ve notification service için mok hazırlayıp ekliyoruz.
    03:35CUnit ile Test Etme
    • CustomerService sınıfını sadece CUnit kullanarak test etmeye başlıyoruz.
    • Önce müşteri nesnesinin kaydedildiğini, ardından haber gönderildiğini kontrol ediyoruz.
    • Hediye listesinin null olup olmadığını ve ilk hediyenin isminin "welcom1", ikinci hediyenin isminin "welcom2" olduğunu teyit ediyoruz.
    04:31AssetDeath ile Akıcı Test Arayüzü
    • Test metodunun AssetDeath ile yapılan bölümü karmaşık ve ilk bakışta ne gibi kontroller yapıldığını anlamak zor.
    • AssetDeath'in sunduğu yöntemler sayesinde kendimize ait akıcı bir arayüz hazırlayabiliriz.
    • İkinci bir metod ekleyip, CustomerService çağırma satırını bu metoda kopyalıyoruz.
    04:58Custom Asset Sınıfı Oluşturma
    • Kolay karşılaştırma olsun diye CustomerService çağırma satırını bu metoda kopyalıyoruz.
    • Custom adında yeni bir package hazırlayıp CustomerAsset adında bir sınıf ekliyoruz.
    • CustomerAsset sınıfı, AbstractAsset adlı abstract yardımcı sınıfı extend ediyor ve zorunlu konstrüktör metodunu ekliyor.
    05:44AssetDeath ile Test Metodu Oluşturma
    • AssetDeath ile eşleştirme satırına başlarken AssetDeath kullanıyorduk, şimdi kendimize ait bir başlangıç metodu seçiyoruz.
    • Yeni bir test metodu ekleyip adını AssetDeathCustomer olarak veriyoruz ve return sınıfı olarak CustomerAsset sınıfını veriyoruz.
    • Kontrol edilecek nesne Customer olduğu için parametre olarak Customer'ı veriyoruz.
    06:23AssetDeath ile Kontrol Metotları
    • AssetDeathCustomer yazıyoruz ve Customer veriyoruz, normal bir AssetDeath metodunda olan tüm metotlara sahip olduğumuzu görüyoruz.
    • HasGift metodumuzu Asset sınıfımıza ekliyoruz ve return olarak kendisini vermesi gerekli.
    • HasGiftWithName metodumuzu ekliyoruz ve extracting kullanarak name değerlerini alıyoruz.
    08:41Ek Kontrol Metotları ve Mock Nesneler
    • Kaydetti mi ve haber gönderdi mi kontrollerini için isSave ve hasReceivedWelcomeNotification metodlarını ekliyoruz.
    • Bu iki sorgulamayı yapmak için mock nesnelerine ihtiyacımız var, bu yüzden bu iki mock nesnesini CustomerAsset constructoruna ekliyoruz.
    • Akıcı arayüzümüz sayesinde karmaşık eşleştirme kodumuzu dışarıdan gizliyoruz ve çağıran sadece isSave metodunu çağırıyor.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor