• Buradasın

    Java'da Unit Test Yazma Eğitimi

    youtube.com/watch?v=ANHXTbnluyk

    Yapay zekadan makale özeti

    • Bu video, bir eğitim içeriği olup, izleyicilere Java'da unit test yazma tekniklerini adım adım göstermektedir.
    • Video, unit testlerin temel prensiplerini ve uygulamalarını anlatmaktadır. Öncelikle "Müşteri Servis" sınıfı üzerinden müşteri kaydetme ve silme işlemlerinin test edilmesi gösterilmektedir. Eğitimde Mockito kütüphanesi kullanılarak mock nesnelerin nasıl oluşturulacağı, test metodlarının birbirinden bağımsız olması gerektiği ve testlerin nasıl kontrol edileceği detaylı olarak anlatılmaktadır. Ayrıca stub sınıflarının kullanımı ve test metodlarının doğru yapılandırılmasının önemi vurgulanmaktadır.
    00:01Test Metotlarının Bağımsız Çalışması
    • Her test metodu diğer test metotlarından bağımsız bir şekilde çalışabilmeli ve farklı sıraya göre çalışabilmeli.
    • Test edilecek bir "Müşteri Servis" sınıfı oluşturuluyor ve içinde "Müşteri Kaydet" metodu ekleniyor.
    • Müşteri kaydetmek için "Müşteri Repository" ve "Bilgilendirme Service" adında bağımlılıklar ekleniyor.
    01:23Test Sınıfı Oluşturma
    • Test etmek için "Test Müşteri Kaydet" adında yeni bir test metodu ekleniyor.
    • JUnit framework içinde "before" antasyonu kullanılarak her test metodundan önce yapılması gereken işlemler ayarlanabiliyor.
    • Test metodunda "Müşteri Kaydet" metodunu çağırıp yeni bir müşteri nesnesi parametre olarak vererek test ediliyor.
    02:42Unit Testlerde Bağımsızlık
    • Gerçek nesneleri (veri tabanı ve e-mail servisi) kullanarak kontrol yapmak zorlaşıyor çünkü mailin gönderilip gönderilmediğini veya veri tabanına müşteri kaydedilip kaydedilmediğini kontrol etmek için ekstra hazırlık gerekiyor.
    • Unit testlerde test edilen parça diğer parçalardan tamamen bağımsız olmalı ve hiçbir şeye gereksinim duymadan izole şekilde çalışmalı.
    • Bu bağımsızlığı sağlamak için "step" veya "mok" kullanılabilir.
    03:29Mok ve Step Kullanımı
    • "Step" demek, kullanılan bağımlı parçanın yerine basitleştirilmiş bir sınıf kullanmak demektir (örneğin, liste kullanarak müşteri kaydet/sil işlemlerini gerçekleştiren bir sınıf).
    • "Mok" ise bir çeşit proxy veya sahte nesne olup, orijinal nesnenin davranışı gibi davranır ve içi boş olan, istenilen şekilde hareket eden bir nesnedir.
    • Mockito kütüphanesindeki "mockito mock" metodu ile mok nesneler oluşturuluyor ve "mockito verify" ile mok nesnelerin metodlarının çağrılıp çağrılmadığı kontrol ediliyor.
    05:50Test Metotlarının Bağımsızlığı
    • Her test metodu diğer test metotlarından bağımsız bir şekilde çalışabilmeli ve farklı sıraya göre çalışabilmeli.
    • Test metotlarının bağımsız olması için bir test metodundan diğerini çağırmamak gerekir, çünkü bir test metodundaki değişiklik diğer testleri etkileyebilir.
    • Testler tam otomatik şekilde çalışmalı, herhangi bir dış etken gereksinimi olmadan çalışmalı ve uzun sürebilecek işlemler kullanılmamalı.
    06:28Bağımlılıkları Test Etme
    • Repository sınıfına müşteri silmek için yeni bir metot ekleniyor ve müşteri servis sınıfına da müşteri silme metodu ekleniyor.
    • Test ederken "step" kullanmak için "Repository Step" adında yeni bir sınıf oluşturuluyor ve gerçek "Müşteri Repository" sınıfından extend ediliyor.
    • Müşteri nesnesine bir ID eklenerek silme işlemi için map yapısı kullanılıyor.
    08:28Step Kullanarak Test Etme
    • Test sınıfında mok yerine step nesnesi kullanılıyor ve kaydetme işleminin test edilmesi için "get Müşteri Listesi" metodu çağrılıyor.
    • Test edilen nesnenin doğruluğunu kontrol etmek için "asset equals" kullanılıyor.
    • Silme metodunu test etmek için yeni bir test metodu ekleniyor ve önce müşteri kaydedilerek silme işleminin test edilmesi sağlanıyor.
    12:30İyi Test Pratiği
    • Birim testleri sık sık çalışmalı ve her metot ismi test edilen senaryoyu yansıtmalı.
    • Testlerin içerikleri karmakarışık olmamalı, baktığında hızlı bir şekilde anlaşılabilmeli.
    • Bir ay sonra bile ne test edildiğini anlayamadığınız testler işe yaramaz.

    Yanıtı değerlendir

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