NUnit, NET uygulamaları için açık kaynak bir birim testi çatısıdır Yazılım testlerinin yazılması ve yürütülmesi için kullanılır Test sınıfları, test edilecek kod parçalarını bir arada toplar Test yöntemleri, kodun bir bölümünü test etmek için kullanılır Test verileri, belirli bir test yönteminin birden fazla girdiyi almasını sağlayan [TestCase] özelliği ile tanımlanabilir Koşullu testler, belirli koşulların sağlandığında çalışan [Ignore] veya [Explicit] özelliklerini kullanır NUnit, yazılım hatalarını en aza indirmeyi amaçlar

NUnit, bir .NET uygulaması için açık kaynak bir birim testi çatısıdır. Yazılım testleri yazmak ve yürütmek için kullanılır. Birim testleri, uygulamanın farklı parçalarının her biri için yapılan küçük testlerdir. Her test, bir işlevi test eder ve bir test sınıfı içinde tanımlanır. Bu yöntem, yazılım hatası oluşumunu en aza indirir ve kodun daha sistemli, güvenilir ve hızlı bir şekilde yazılmasını sağlar.
NUnit Kurulumu
NUnit, bir .NET uygulaması için açık kaynak bir birim testi çatısıdır ve yazılım testlerinin yazılması ve yürütülmesi için kullanılır. Bu araç sayesinde, uygulamanın herhangi bir yerindeki kodun doğru çalıştığından emin olunabilir. NUnit, kolay kurulumu ve kullanımı sayesinde birçok geliştirici tarafından tercih edilmektedir.
NUnit, yükleme açısından oldukça esnektir. Hem Visual Studio'nun hem de NuGet paket yöneticisinin yanı sıra, çeşitli Linux dağıtımları ve macOS'ta da kullanılabilir. Bu, birçok platformda test kodunun yazılması ve çalıştırılması için kullanılabilmesi anlamına gelir.
NuGet üzerinden NUnit'un son sürümünün yüklenmesi oldukça kolaydır. Sadece projenin NuGet yöneticisi penceresini açın, "NUnit" aramasını yapın ve sonrasında yüklemek istediğiniz NUnit sürümünü seçin. Bu, projenize NUnit'u ekleyecektir ve test kodlarınızın yazılmasına başlamanızı mümkün kılacaktır.
NUnit Kullanımı
NUnit, birim testi çatısıdır ve yazılım testleri yazmak ve yürütmek için kullanılan açık kaynak bir .NET uygulamasıdır. NUnit kullanarak birim testleri yazmak için öncelikle test sınıfları oluşturmanız gerekmektedir. Bu sınıflar, [TestFixture] öznitelikleriyle işaretlenecektir ve NUnit tarafından belirli bir test grubu olarak oluşturulacaktır. Test sınıfları, test edilecek kodları içeren test metodlarını tanımlayan sınıflardır. Bu metodlar, [Test] özniteliği ile işaretlenir ve kod bloklarını içerir. Bu kod blokları, belirli bir test senaryosunda yürütülmelidir.
Ayrıca, koşullu testler için [Ignore] veya [Explicit] öznitelikleri kullanılabilir. Bunlar sadece belirli koşullar sağlandığında çalışır. Test verileri kaynakları, [TestCase] özniteliği ile işaretlenen bir test yöntemi tarafından kullanılan test verilerini sağlar. Assert metodları, yürütülen kodun beklenen sonuçlarına dair karşılaştırmalar yapmak için kullanılır. NUnit, yüzlerce önceden tanımlanmış Assertion sağlar. Bazıları Assert.Fail (), Assert.AreEqual () ve Assert.IsTrue () şeklindedir.
Test Sınıfları
NUnit ile birim testleri yazmak için oluşturulan test sınıfları, [TestFixture] öznitelikleri ile işaretlenir ve NUnit tarafından belirli bir test grubu olarak oluşturulur. Bu sınıflar, test edilecek kod parçalarının bir arada toplandığı bir yapı oluşturur. Her test sınıfı, aynı amaç için kullanılan test metodlarının bir listesini içerir.
Bu sınıflar, NUnit tarafından otomatik olarak yönetilir ve test oluşturmak ve yürütmek için birçok kolaylık sağlar. Örneğin, NUnit, bir test sınıfı içinde bir constructor metodu bulunması durumunda, her test metodu öncesinde tekrar çağrılarak aynı test koşulları sağlanabilir.
Ayrıca, NUnit, test sınıflarının sıralamasını da kontrol eder. Genellikle, test sınıfları amaçlarına göre ayrılabilir. Örneğin, belirli bir sınıf, sayfa ayarları hakkında testleri içerebilirken, bir diğeri kullanıcı oturum açma testlerini içerebilir. Bu şekilde, tüm test kapsamları daha kolay bir şekilde organize edilebilir.
Test Metotları
[Test] özniteliği, birim test çalıştırıcısının bu yöntemi çalıştırması gerektiğini belirten NUnit'in test yöntemi içerisinde kullanılan bir özniteliktir. Bir test yöntemi, kodun bir bölümünü test etmek için kullanılır ve bir test sınıfı içinde tanımlanır. Bu yöntem, bir test şekli olarak kullanılarak, beklenen sonuçla gerçekleşen sonuç arasında bir karşılaştırma yapar.
Bir test yöntemi içinde, bir dizi negatif ve pozitif örnekler kullanılarak, hatalı davranışları test etmek için örnekler oluşturulur. Örneğin, bir metot için, geçerli ve geçersiz girdiler veren birkaç Assert örneği bulunabilir. Test etmek istediğimiz metotun bu iki örneği de geçmesi gerektiği kabul edilir. Böylece, uygun bir şekilde yapılandırılmış test örnekleri, birim testlerinin başarılı bir şekilde çalıştırılmasını sağlar.
Koşullu Testler
Koşullu testler, NUnit test framework'ünde belirli koşulların sağlandığı durumlarda çalıştırılan testlerdir. Bu tür koşullar, test sınıflarındaki [Ignore] veya [Explicit] özniteliği ile işaretlenir. [Ignore] özellikle bir testin belirli bir nedenle geçici olarak devre dışı bırakılmasını sağlar. Bu durumda test sonuçlarında gösterilmez ve çalıştırılmaz.
Öte yandan, [Explicit] özelliği sadece manuel olarak çalıştırılır ve koşullar yerine getirilmediğinde atlanır. Bu özellik genellikle bir sistem veya birim testinde hata ayıklama işlemleri sırasında kullanılabilir.
Test Verileri Kaynakları
Test verileri, birim testlerinde kullanılan girdi ve çıktı değerlerinin tanımlanması için önemli bir unsurdur. NUnit, [TestCase] özniteliği ile işaretli bir test yöntemi tarafından kullanılan test verilerini sağlar.
Bir [TestCase] örneği, bir test yöntemine birden fazla girdi sağlayan bir kaynak oluşturur. [TestCase] örneğinde tanımlanan her bir girdi için NUnit, yöntemi bu girdi ile çalıştırır ve sonuçları kontrol eder. Bu özellik, benzer testler için çoklu test yöntemleri yerine tek bir yöntem kullanarak kod karmaşıklığını azaltmak için kullanılabilir.
Bir [TestCase] örneği oluşturmak için, eğer tüm girdiler aynı sonuçları üretirse, NUnit tarafından otomatik olarak sağlanan parametrelere başvurabilirsiniz. Aksi takdirde, farklı parametreler için NUnit tarafından üretilen test verileri özelleştirilebilir.
Aşağıdaki örnek kod, [TestCase] örneği kullanarak her biri için farklı bir sayı seçerek toplama işlemi yapar.
Test Case | First Number | Second Number | Expected Result |
---|---|---|---|
Test Case 1 | 2 | 3 | 5 |
Test Case 2 | -4 | 7 | 3 |
Test Case 3 | 0 | 0 | 0 |
[TestFixture]public class TestClass{ [TestCase(2, 3, 5)] [TestCase(-4, 7, 3)] [TestCase(0, 0, 0)] public void Addition(int firstNumber, int secondNumber, int expectedResult) { var result = firstNumber + secondNumber; Assert.AreEqual(result, expectedResult); }}
Assertionlar
Assertionlar, yazılan kodun istenilen yerlerinde beklenen sonucu vereceğini kontrol etmek için kullanılan önemli bir araçtır. Bu araç, test edilen kodun belirtilen şartlara uygun olarak çalıştığını kontrol eder. Assertionlar, herhangi bir yere yerleştirilebilir ve yönlendirici mesajlar, kullanıcı tarafından anlaşılabilir hatalar ve diğer çıktılar gibi test sonuçlarının görüntülenmesine yardımcı olur.
Assertionlar, kodu kontrol etmek ve beklenen değerlerin gerçek değerlerle eşleşip eşleşmediğini belirlemek için kullanılan yöntemlerdir. NUnit Assertionları, yüzlerce önceden tanımlanmış Assertion sağlar. Bu Assertionlar, kodda beklenen davranış değişkenlerini karşılaştırmak için kullanılabilir. Bazı örnekler, Assert.Fail (), Assert.AreEqual () ve Assert.IsTrue (), özellikle sıklıkla kullanılırlar.
Assertionlar, bir projenin sağlıklı bir şekilde çalıştığını doğrulamak için çok önemlidir. Test çalıştırıcısı, tüm Assertionların başarılı bir şekilde sonuçlandığını gösterirse, kodun herhangi bir yerinde bir hata olup olmadığını anlamak kolaydır. Bu nedenle Assertionlar, birim testlerinin önemli bir parçasıdır.
NUnit Assertionlar
NUnit, yazılan testlerin geçerliliğini test etmek için yüzlerce Assertion tanımlamıştır. Assertionlar, yürütülen kodun beklenen sonuçlarına dair karşılaştırmalar yapmak için kullanılır.
Bazı örnek Assertionlar şunlardır:
- Assert.Fail(): Bir testin başarısız olduğunu belirlemek için kullanılır.
- Assert.AreEqual(): İki değerin eşit olup olmadığını kontrol eder.
- Assert.IsTrue(): Bir koşulun doğru olduğunu doğrular.
Bu Assertionlar, yazılan testlerin doğruluğunu kontrol etmek için kullanılabilir. Assertionların yanı sıra, NUnit'in diğer işlevleri de mevcuttur ve bu işlevler birim testlerin daha kolay ve daha hızlı bir şekilde yazılmasını sağlar.
Test Çalıştırma
NUnit ile yazılan birim testleri, NUnit Test Runner aracılığıyla çalıştırılır ve sonuçları görüntülenir. Test Runner, NUnit tarafından sağlanan bir GUI arayüzü veya bir komut satırı aracılığıyla çalıştırılabilir.
Test Runner, test sınıflarını ve methodlarını algılar ve her birinin durumunu (Geçti / Başarısız) gösterir. Ayrıca, birim testinin kaç saniye sürdüğünü ve toplamda kaç testin çalıştırıldığını da gösterir.
Test Runner ayrıca, başarısız olan testlerin nedenlerini belirtir. Bu, testin hangi assertionda başarısız olduğunu ve beklenen sonucun ne olduğunu gösterir. Böylece, geliştiriciler hatalı kodlarını belirleyebilir ve hızlı bir şekilde düzeltme yapabilirler.
Test Runner ayrıca, gruplama ve filtreleme seçenekleri sağlar. Böylece, belirli bir test grubunun çalıştırılması veya yalnızca bazı testlerin çalıştırılması mümkündür. Bu seçenekler, çok sayıda birim testi olan büyük bir proje için son derece kullanışlıdır.
NUnit Test Runner, birim testlerini kolayca çalıştırabilmenizi ve sonuçlarını görebilmenizi sağlayan kullanışlı bir araçtır. Bu nedenle, NUnit'ı kullanan tüm geliştiriciler tarafından kullanılması önerilir.