.NET'te test etme
Bu makale, test kavramını tanıtır ve kodu doğrulamak için farklı test türlerinin nasıl kullanılabileceğini gösterir. .NET CLI veya Tümleşik Geliştirme Ortamları (IDE) gibi .NET uygulamalarını test etmek için çeşitli araçlar kullanılabilir.
Test türleri
Otomatikleştirilmiş testler, uygulama kodunun yazarlarının amaçladığı şeyi yapmalarını sağlamanın harika bir yoludur. Bu makale birim testlerini, tümleştirme testlerini ve yük testlerini kapsar.
Birim testleri
birim testi, "iş birimi" olarak da bilinen tek tek yazılım bileşenlerini veya yöntemlerini kullanan bir testtir. Birim testleri yalnızca geliştiricinin denetimindeki kodu test etmelidir. Altyapı sorunlarını test etmemektedir. Altyapıyla ilgili endişeler arasında veritabanları, dosya sistemleri ve ağ kaynaklarıyla etkileşim kurma yer alır.
Birim testleri oluşturma hakkında daha fazla bilgi için bkz. Test araçları.
Tümleştirme testleri
tümleştirme testi, "tümleştirme" olarak da bilinen iki veya daha fazla yazılım bileşeninin birlikte çalışma becerisini kullanmasından dolayı birim testinden farklıdır. Bu testler test kapsamındaki sistemin daha geniş bir spektrumu üzerinde çalışırken birim testleri tek tek bileşenlere odaklanır. Tümleştirme testleri genellikle altyapı sorunlarını içerir.
Yük testleri
yük testi, bir sistemin belirli bir yükü işleyip işleyemeyeceğini belirlemeyi amaçlar. Örneğin, bir uygulamayı kullanan eşzamanlı kullanıcı sayısı ve uygulamanın etkileşimleri hızlı bir şekilde işleme yeteneği. Web uygulamalarının yük testi hakkında daha fazla bilgi için bkz. ASP.NET Core load/stress testing.
Testle ilgili dikkat edilmesi gerekenler
Test yazarken en iyi uygulamaların olduğunu aklınızda bulundurun. Örneğin Test Temelli Geliştirme (TDD), denetlemesi amaçlanan koddan önce birim testi yazdığınız zamandır. TDD, yazmadan önce bir kitabın ana hatlarını belirlemeye benzer. Birim testi, geliştiricilerin daha basit, okunabilir ve verimli kod yazmasına yardımcı olur.
Test araçları
.NET'te testleri çalıştırırken, iki bileşen söz konusu olur: test platformu ve test çerçevesi.
Test platformları
Test platformu, testleri çalıştıran ve IDE'ler ile iletişim kanalı görevi gören altyapıdır. Örneğin Visual Studio, kullanılabilir testleri Test Gezgini'nde görüntüleyebilmek için test platformuna bir bulma isteği gönderebilir. Test platformu, bulduğu testlerle IDE'ye geri yanıt verir. Test yürütmesi için benzer iletişimler gerçekleşir.
VSTest uzun yıllardır .NET'te kullanılmıştır ve ekosistemdeki tek test platformuydu. 2024'ün başlarında, Microsoft.Testing.Platform (MTP)adlı yeni bir test platformunun ilk kararlı sürümü piyasaya sürüldü.
Test çerçeveleri
Test çerçevesi, test platformunun üzerine kurulmuştur. Test yazarı olarak kullanabileceğiniz öznitelik ve API kümesini tanımlar. Genellikle test çerçevesi ile test platformu arasında bir iletişim katmanı işlevi gören bir test bağdaştırıcısı tarafından desteklenir. Popüler test çerçeveleri MSTest, NUnit, TUnit ve xUnit.net'tir.
MSTest
MSTest, tüm .NET dilleri için Microsoft test çerçevesidir. Genişletilebilir ve .NET CLI, Visual Studio, Visual Studio Code ve Rider ile çalışır. Hem VSTest hem de Microsoft.Testing.Platform'u destekler.
Daha fazla bilgi için aşağıdaki kaynaklara bakın:
- MSTest (MSTest çalıştırıcısı) içinde Microsoft.Testing.Platform desteği
- C# ile birim testi
- F# ile birim testi
- Visual Basic ile birim testi
NUnit
NUnit, tüm .NET dilleri için bir birim testi çerçevesidir. Başlangıçta, NUnit JUnit'ten taşındı ve geçerli üretim sürümü, birçok yeni özellik ve çok çeşitli .NET platformları desteğiyle yeniden yazıldı. Bu, .NET Foundationprojesidir. Hem VSTest hem de Microsoft.Testing.Platform'u destekler.
Daha fazla bilgi için aşağıdaki kaynaklara bakın:
- NUnit (NUnit runner)'de Microsoft.Testing.Platform desteği
- Birim testi C# ile
- F# ile birim testi
- Visual Basic ile birim testi
TUnit
TUnit tamamen Microsoft.Testing.Platform'un üzerine kurulmuştur ve VSTest'i desteklemez. Daha fazla bilgi için TUnit belgelerine bakın.
xUnit.net
xUnit.net. .NET için ücretsiz, açık kaynak, topluluk odaklı bir birim testi aracıdır. NUnit v2'nin özgün mucidi xUnit.net yazdı. xUnit.net, .NET uygulamalarının birim testi için en son teknolojidir. Ayrıca ReSharper, CodeRush ve TestDriven.NET ile de çalışır. xUnit.net, .NET Foundation'nin bir projesidir ve kullanım kuralları kapsamında çalışır. Hem VSTest hem de Microsoft.Testing.Platform'u destekler
Daha fazla bilgi için aşağıdaki kaynaklara bakın:
- xUnit.net v3 'de Microsoft.Testing.Platform desteği
- C# ile birim testi
- F# ile birim testi
- Visual Basic ile birim testi
Testleri çalıştırma
.NET CLI
dotnet test komutuyla .NET CLI kullanarak bir çözümdeki tüm test projelerinden birim testleri çalıştırabilirsiniz. .NET CLI, Tümleşik Geliştirme Ortamları'nı (IDE) kullanıcı arabirimleri aracılığıyla kullanılabilir hale getiren işlevlerin çoğunu kullanıma sunar. .NET CLI platformlar arasıdır ve sürekli tümleştirme ve teslim işlem hatlarının bir parçası olarak kullanılabilir. .NET CLI, ortak görevleri otomatikleştirmek için betikli işlemlerle birlikte kullanılır.
IDE
Visual Studio, Visual Studio Code veya Rider kullanıyor olun, test işlevlerine yönelik grafik kullanıcı arabirimleri vardır. IDE'lerde CLI'dan daha fazla özellik vardır, örneğin, Canlı Birim Testi. Daha fazla bilgi için bkz. Visual Studio ile testleri dahil etme ve dışlama.
Ayrıca bkz.
Daha fazla bilgi için aşağıdaki makalelere bakın:
- .NET ile birim testi en iyi yöntemleri
- ASP.NET Core'da Tümleştirme testleri
- Seçmeli birim testleri çalıştırma
- Birim testi için kod kapsamını kullanma