.Net Core ile Unit Test 5
Bu serimizde .Net Core ile API içerisinde ki endpointlerimizi nasıl test edeceğiz bunu test ediyor olacağız. Öncelikle bunun için bize bir API gerekmektedir. Var olan .Net Core MVC projemize bir API controller oluşturalım. Hem de kod tekrarı yapmamış oluruz.
Controller ımızı oluşturduktan sonra ilgili context ve DI tanımlayalım.
Buradaki amacımız API testini yapmak olduğunu için yazılan kodları anlatmıyorum sadece yaptığım şey burada DI eklemek ve ilgili metotlarımı düzenlemek oldu. İlk olarak Test projemizde bir ProductApiControllerTest adında bir class oluşturalım. İlgili mock setup larımızı ekledikten sonra gelin ilk testimizi GetProductAsync yazmaya başlayalım.
GetProductAsync yazarken veri dönüş tiplerini, toplam sayı kontrolünü gibi bir çok işlemleri yaptık gelin şimdi GetById kontrollerimizi yapalım burada verinin null olma durumunu birde verinin gelme durumunu kontrol edelim.
GetById test örneklerimizde de Result dönüş tipini ve null durumlarını yazdık. O halde update işlemini yapabiliriz burada result dönüşlerini ve nocontent dönüşlerini kontrol edebiliriz.
Update testimizide yazdığımıza göre create işlemini yapabiliriz. Burada CreatedAtActionResult kontrolümüzü yaparak testimizi yazalım. CreateAsync bize Task dönüyor bununda tamamlandığını belirtmemiz gerekiyor.
Son testimiz olan Delete testimizi yazıyoruz. Burada ResultNotFound kontrolü ve NoContent işleminin gerçekleşip gerçekleşmediğini kontrol edeceğiz.
Tüm testlerimizi çalıştırdığımızda pass ettiğini görebiliriz.