Menu
CoddyTech

Birim Testi (NUnit/xUnit)

Coddy'nin C# Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 67 / 70.

challenge icon

Görev

Kolay

Library System projenizi birim testleri ekleyerek tamamlayalım! Testler, kodunuzun doğru çalıştığından ve değişiklik yaptıkça çalışmaya devam ettiğinden emin olmak için gereklidir. Kütüphane sisteminizin temel işlevlerini doğrulayan özel bir test dosyası oluşturacaksınız.

Mevcut proje yapınız üzerinde çalışmaya devam edecek ve yeni bir test dosyası ekleyeceksiniz:

  • Book.cs: Id, Title, Author, IsAvailable özelliklerine ve Borrow() ile Return() yöntemlerine sahip Book sınıfınızı koruyun.
  • User.cs: Ödünç alma takibi, MaxBooks sabiti, CanBorrow() yöntemi ve ödünç alınan kitapları yönetmeye yönelik yöntemleri olan User sınıfınızı koruyun.
  • Library.cs: Ödünç alma mantığına, arama yöntemlerine ve GetAllBooks() ile GetAllUsers() yöntemlerine sahip Library sınıfınızı koruyun.
  • LibraryTests.cs: Bu sizin yeni test dosyanız! Kütüphane sisteminizin doğru çalıştığını doğrulayan bir test sınıfı oluşturun. Çeşitli senaryoları kontrol eden ve her testin başarılı mı yoksa başarısız mı olduğunu bildiren test yöntemleri yazacaksınız.
  • Program.cs: Testleri çalıştıran ve sonuçları görüntüleyen giriş noktanız.

Test sınıfınız, aşağıdaki senaryoları test eden yöntemleri içermelidir:

  • TestBookBorrow - Kullanılabilir bir kitabı ödünç almanın başarılı olduğunu ve kitabın kullanılabilirlik durumunu değiştirdiğini doğrulayın
  • TestBookBorrowUnavailable - Daha önce ödünç alınmış bir kitabı ödünç alma işleminin uygun şekilde başarısız olduğunu doğrulayın
  • TestUserBorrowingLimit - Kullanıcıların 3 kitaptan fazlasını ödünç alamadığını doğrulayın
  • TestBookReturn - Ödünç alınmış bir kitabı iade etmenin doğru şekilde çalıştığını doğrulayın
  • TestSearchByAuthor - Yazara göre aramanın doğru kitapları döndürdüğünü doğrulayın

Her test yöntemi, testin başarılı olup olmadığını belirten bir boolean değer döndürmelidir. Tüm testleri çalıştıran ve sonuçları yazdıran basit bir test çalıştırıcısı oluşturun.

Aşağıdaki girdileri alacaksınız:

  • Çalıştırılacak test senaryolarının sayısı (yukarıda listelenen testlere karşılık gelen 1-5)

Çalıştırılan her test için sonucu şu biçimde yazdırın:

{TestName}: {PASS|FAIL}

Tüm testler tamamlandıktan sonra bir özet yazdırın:

--- Test Summary ---
Passed: {count}
Failed: {count}
Total: {count}

Örneğin, girdi şuysa:

3

Çıktı şu olmalıdır:

TestBookBorrow: PASS
TestBookBorrowUnavailable: PASS
TestUserBorrowingLimit: PASS
--- Test Summary ---
Passed: 3
Failed: 0
Total: 3

Tüm 5 testin yer aldığı başka bir örnek:

5

Çıktı şu olmalıdır:

TestBookBorrow: PASS
TestBookBorrowUnavailable: PASS
TestUserBorrowingLimit: PASS
TestBookReturn: PASS
TestSearchByAuthor: PASS
--- Test Summary ---
Passed: 5
Failed: 0
Total: 5

Yalıtımı sağlamak için testleriniz her testte yeni Book, User ve Library örnekleri oluşturmalıdır. Böylece bir testin durumu diğerini etkilemez. Her testi, sisteminizdeki belirli bir davranışın kendi içinde tamamlanmış bir doğrulaması olarak düşünün!

Kendin dene

using System;

namespace LibrarySystem
{
    class Program
    {
        public static void Main(string[] args)
        {
            // Çalıştırılacak test sayısını oku
            int numTests = Convert.ToInt32(Console.ReadLine());

            // TODO: Bir LibraryTests nesnesi oluştur ve ilk numTests testi çalıştır
        }
    }
}

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online C# derleyicisi