.Net Core ile Unit Test

Tolgahan Öztürk
2 min readAug 1, 2023

--

Bu yazımız 5 Ana bölümünden oluşacaktır.

1- xUnit nedir ? xUnit ile bize gelen metotları örnekleriyle inceleyeceğiz.
2- Moq Framework nedir ?
3- Örnek bir MVC projesi oluşturma
4- Senaryolara göre unit test yazımı
5- Örnek bir API projesi ile Endpoint Senaryo yazımı

Unit Test Nedir ?

Bir uygulamanın en küçük parçalarının birbirinden bağımsız olarak nasıl bir davranış sergilediğinin test edilme sürecidir. Bir MVC uygulamasını ele aldığımızda en küçük bileşenlerimiz metotlarımız. Biz metotlarımızın nasıl bir davranış sergileyeceğini unit testler sayesinde öğrenebiliyoruz.

Avantajları

1- Erken uyarı sistemi olmasıdır. Uygulama yazıldıktan sonra production ortamına çıkmadan o uygulamanın metotlarının nasıl bir davranış sergileyeceğini en erken aşamada öğrenebilirsiniz.

2- Zaman kazandırır. Unit test yazarken zaman harcansa bile proje kapsamı genişledikçe sorunları ilk baştan göreceğinizden dolayı size kolaylık sağlayacaktır.

Test Çeşitleri

Unit Test => küçük parçacık testi
Integration Test => komponent veya modüllerin birbiriyle olan davranışların test edildiği süreç
End to End Tests => baştan sona test edilme süreci
UI Test => kullanıcının testi

.Net Core Unit Test Framework’ler nelerdir ?

MSTest => Microsoft tarafından geliştirilen bir framework
NUnit => OpenSource bir framework
xUnit=> OpenSource bir framework

aralarında en populer, kodlaması en kolay olanı ise xUnit tir.

xUnit Framework Proje Oluşturma

İlk olarak xUnit projesi oluşturacağız daha sonra test edilecek projeyi oluşturacağız. Toplamda 2 projemiz olacak. Kodlama yaparken teorik bilgilerden bahsediyor olacağım. Best Practies açısından Test Projesini ayrı yazmak daha doğrudur.

İlk olarak Create a new project diyelim ve Class Library (.Net Core) seçelim. Solution ismime ExampleXUnitTest diyorum. Project ismime ise ExampleUnitTest.APP olarak veriyorum. Ve projemizi oluşturalım. Açıldığında ilk olarak default oluşan Class1.cs dosyasımızı kaldıralım. Biz kendi class larımızı oluşturacağız. En küçük yapıları test edeceğimiz metotları test edeceğiz. Bu yapılar birbirinden bağımsız olması gerekiyor. Bir metodu test ederken diğer metota bağlı olmaması lazım. Birde Solution içerisinde xUnit Test Project (.Net Core) Projesi oluşturalım. Proje ismini ExampleUnitTest.Test verelim. Using.cs ve UnitTest1.cs classımızıda silelim ve herşeyi sıfırdan yazmaya başlayalım. Son olarak .Test projesinden App projesine reference alalım ki ilgili metotlara erişim sağlayabilelim.

xUnit Packages (paketler) nelerdir ?

xUnit => ana kütüphane
xUnit.Runner.VisualStudio => yazılan test tool (Test Explorer) => yazılan testi çalıştırmak için kullanılır.
Net.Test.Sdk => Debug edebilme
Coverlet.collector => cross ortam olduğu için kullanılan bir kütüphane

bir sonraki yazımızda görüşmek üzere…

--

--

Tolgahan Öztürk
Tolgahan Öztürk

Written by Tolgahan Öztürk

Hi! I‘m an developer passionate about Full Stack and .Net learning. I’m here because best way to learn something is to teach it.Hope you enjoy!

No responses yet