Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan unit test konulu bir eğitim serisinin bir parçasıdır.
- Video, unit test kavramını bir class library projesi üzerinden uygulamalı olarak göstermektedir. İçerikte iş başvurularını otomatik filtreleme sistemi oluşturma, test metodlarının isimlendirilmesi, test yazma sürecinin üç temel bölümü (arrange, action, assert) ve test senaryolarının çalıştırılması ve sonuçlarının yorumlanması adım adım anlatılmaktadır.
- Eğitim serisi, bir önceki bölümde unit test kavramının ne olduğu ve neden yapıldığı bilgilerini içermekte, bu bölümde ise pratik uygulamaları göstermektedir. Bir sonraki videoda yeni bir kütüphane kullanılarak devam edileceği ve test senaryolarının sayısının artırılacağı belirtilmektedir.
- 00:08Unit Test Kavramının Uygulanması
- Önceki videoda unit test kavramının ne olduğu, neden yapıldığı ve avantajları anlatılmıştı.
- Bu videoda, unit test kavramının bir proje üzerinde nasıl uygulanacağı gösterilecek.
- Bir class library projesi oluşturulup, iş başvurularını filtreleyen ve sonraki adımı belirten bir fonksiyon test edilecek.
- 00:51Proje Yapısı ve Class'lar
- Java Application isimli bir class bulunuyor ve iş başvurularını filtreleyen bir fonksiyon yazılacak.
- Applicant class'ı, başvuru yapan kişinin yaş propertisini tutuyor ve daha sonra genişletilecek.
- Java Application class'ında başvuru yapan kişinin bildiği teknolojiler için bir string listesi ve tecrübe propertisi bulunuyor.
- 02:10Application Evaluator ve Sonuçlar
- Application Evaluator class'ında evaluate metodu, gelen başvuruyu ölçüp bir sonuç döndürüyor.
- Application Result enum'ında auto rejected, HR, takım liderine gönderildi, CTO'ya gönderildi ve otomatik olarak kabul edildi gibi sonuçlar bulunuyor.
- Evaluate metodunun farklı senaryolarda nasıl davranacağı test edilecek.
- 03:47Unit Test Projesi Oluşturma
- Solution içerisinde bir test projesi oluşturuluyor ve NUnit framework'i kullanılıyor.
- Test projesinin adı "Java Application Library Unit Test" olarak belirleniyor.
- Test class'ının ismi "Application Evaluate Unit Test" olarak değiştiriliyor.
- 06:14Test Explorer ve Test Çalıştırma
- Visual Studio'da View menüsünden Test Explorer penceresi açılarak testler görüntülenebiliyor.
- Test Explorer'da testleri çalıştırmak için metodların üst kısmındaki işaretlere tıklanabilir veya sağ tıklayıp run/debug seçeneği kullanılabilir.
- Testlerin sonuçları yeşil (pass) veya kırmızı (fail) olarak gösteriliyor ve fail durumunda hata mesajı görüntülenebiliyor.
- 09:16Test Metodu Oluşturma
- Test metodu public ve void olarak tanımlanmalı ve isimlendirilmeli.
- Test metodunda assertionlar kullanılacak.
- Evaluate metoduna 18 yaşından küçüklerin başvuramaması özelliği ekleniyor ve bu durum test edilecek.
- 10:28Test Metodlarının İsimlendirilmesi
- Test metodlarının isimlendirilmesinde, geliştirici bu testi gördüğünde anlaşılır kelimeler kullanılmalı ve testin ne olduğunu anlaması gerekir.
- İsimlendirme örneği olarak "ApplicationEvaluateWithUnderAgeTransfortAutoRejected" kullanılabilir, burada bir başvuru (application) test ediliyor, yaşın 18'den küçük olduğu durumda (under age) sonuç otomatik olarak reddedilmeli (auto rejected).
- İsimlendirme üç bölümden oluşabilir: unit of work (test edilen alan), condition (test durumu) ve expected result (beklenen sonuç), ancak bu düzen zorunlu değildir.
- 14:23Test Kodları İçin Snippet Kullanımı
- Test metodları üç bölümden oluşur: arrange (ayarlama), action (aksiyon) ve assert (kontrol).
- Visual Studio'da "u-test" yazıp tab tuşuna basıldığında otomatik olarak test metodu oluşturulabilir.
- Snippet, kod yazarken zaman tasarrufu sağlayan, hızlı şekilde kod bloğu ekleyen bir özellik olup, XML formatında tanımlanır.
- 17:48Test Kodunun Yazılması
- Arrange bölümünde test edilecek sınıfın bir örneği oluşturulur, her testin bağımsız olması için bu işlem test bloğunda yapılır.
- Action bölümünde test edilecek metod çağrılır ve gerekli parametreler gönderilir.
- Assert bölümünde beklenen sonuç ile elde edilen sonuç karşılaştırılır ve eşitlik durumu kontrol edilir.
- 21:24Test Senaryoları ve Sonuçları
- Bir proje build edildikten sonra test çalıştırılır ve testin geçtiğini yeşil renk ile görebiliriz.
- Test senaryosunda beklenen sonuç ile alınan sonuç birbirine eşit olduğunda test geçer.
- Hata durumunda, mesaj kısmında beklenen sonuç (rejected) ile alınan sonuç (accepted) arasındaki fark belirtilir.
- 22:14Hata Analizi ve Çözüm
- Asset kısmından bakıldığında, beklenen rejected değeri yerine accepted değeri döndüğü için hata oluşur.
- Kullanılan mok kütüphanesinin message kısmı daha düzgün ve detaylı olabilir.
- Beklenen sonuç (rejected) verildiğinde test tekrar geçer.
- 23:00Video Kapanışı
- Video uzun olduğu için burada bitirilecek ve test senaryolarının sayısı bir sonraki videoda artırılacaktır.