Unit Test Giriş

Unit Test Giriş

Unit Test Nedir ve Dahası

Unit Test Nedir :

Bir uygulamanın en küçük parçalarının test edilmesidir. Yani metotları test edilmesidir.

.net dünyasından yaygın kullanılan unit test framework'leri :

  1. MSTest
  2. NUnit
  3. XUnit.net

Bunlardan en yaygın kullanılanı XUnit.net'tir.

XUnit.net framework anlatımı :

  • İlk başta visual studio 2019'u açın istediğiniz bir locasyona :
    • boş bir solution oluşturun.
  • Daha sonra solution'ın içine bir class library (.net core class library) ekleyin ve içinde default gelen class'ı silin.
  • Daha sonra solution'a şu projeyi ekleyin : xUnit Test Project.
    • daha sonra xUnit projesinin içindeki default gelen class'ı silin.

Not : Best practice açısından, ProjeIsmi.Test olarak projenin adlandırılması daha doğru olur.

xUnit Test Project'in paketleri :

  • İlk başta xUnit Test Project oluştuduğunuz projeyi'nin :
    • Dependicies adlı kısmını genişletin
    • Daha sonra packages göreceksiniz, packages'i de genişletin.

Göreceğiniz üzere :

  • xunit.runner.visualstudio
    • Test Explorer'ın kullanılması sağlar.
  • Microsoft.NET.Test.Sdk
    • Uygulamayı build edebilmek gibi görevler için kullanılacak pakettir.
  • coverlet.collector
  • xunit

Note: xUnit Test Project projesi yukarıdaki paketlerin eklendiği bir class library'dir.

Note2 : xUnit Test Project olarak yarattığımız projenin testlerimizi çalıştırabilmesi için test etmesi gereken projeyi dependencies olarak alması(eklemesi) gerekmektedir.

Unit Test Aşamaları :

  1. Arrange

    • Gerekli değişkenlerin ve/veya objelerin yaratıldığı yerdir.
  2. Act

    • Test edeceğimiz metotları çalıştıracağımız yerdir.
  3. Assert

    • Test ettiğimiz metodun doğru sonucu verdiğiniz doğruladığımız yerdir.

Visual Studio.png

Ornek proje.

Kaynak Kodları : Github

Açıklama :

Test edilecek metot:

       public string SayHello(string name)
        {
            return "Hello " + name; 
        }

Test Metodu :

        [Fact]
        public void SayHelloTest()
        {
            //Arrange 
            string name = "Mustafa";
            SaySomeThing saySomeThing = new SaySomeThing();

            //Act
            var Value = saySomeThing.SayHello(name);


            //Assert
            Assert.Equal("Hello Mustafa", Value);

        }

Fact attirubute testimiz çalıştırmak gereklidir.

Arrange : gerekli variable veya objeleri tanımladığımız yerdir.

Act : Test edilecek metodumuzun gerekli parametreleriyle birlikte çalıştırıldığı yerdir:

  • İlgili parametreyle çalıştırdığımız da gelen değeri Value içine atıyoruz.

Assert : Doğrulama yaptığımız yerdir. Yani :

  • Assert.Equal("Hello Mustafa", Value); burada ise gelen değeri bizim beklediğimiz değer olan "Hello Mustafa" ile karşılaştırıyoruz.

İki değer birbirine eşit olduğundan test'imiz başarıyla sonuçlanıyor.

Benim de yakın zamanda unit test işlemlerini öğrenmeye başladığım yer aşağıdaki linkteki udemy kursudur. Daha fazla detaylı bilgi için aşağıdaki kursu inceleyebilirsiniz :

Fatih Çakıroğlu Unit Test Kursu