Unit Testte Action’ın Modelin’inin Veri Türüne Erişim

Action methodlarından dönen modelin türü, durumlara göre farklı olabilir. Biz bu action methodundan dönen modelin tipini test etmek isteyebiliriz modelimizde. Bunun için Assert.InstanceOfType test methodu ile actiondan dönen modelin türünü karşılaştırabiliriz. Örnek action methodumuz şöyle olsun:

public ActionResult Urunler()
{
   return View(new List());
}

Test Methodumuz:

[TestMethod]
public void Urunler_Liste()
{
   HomeController controller = new HomeController();
   ViewResult sonuc = controller.Urunler() as ViewResult;
   Assert.IsInstanceOfType(sonuc.Model, typeof(List));
}
Reklamlar

Unit Test Json Türündeki Verilen Testi

Action methoddan Json türünde veri döndürmemiz gereken durumlar olabilir. Bu durumların testleri yapılırken actiondan alınan veriler orjinal türüne dönüştürülüp olması gereken değerle, özellik bazında değerler karşılaştırılarak sonucun doğruluğu kontrol edilebilir.

Controllerda Json tipindeki Action Methodu:

public JsonResult JsonUrun()
        {
            var urun = new Urun
            {
                Id = 1,
                Ad = "Bilgisayar",
                Fiyat = 2000
            };
            return Json(urun);
        }

Unit Testteki test methodumuz:

[TestMethod]
        public void UrunJson_Test()
        {
            HomeController controller = new HomeController();

            var urun = controller.JsonUrun();
            var sonuc = urun.Data as Urun;
            var olmasiGereken = new Urun
            {
                Id = 1,
                Ad = "Bilgisayar",
                Fiyat = 2000
            };
            Assert.AreEqual(sonuc.Id, olmasiGereken.Id);
            Assert.AreEqual(sonuc.Ad, olmasiGereken.Ad);
            Assert.AreEqual(sonuc.Fiyat, olmasiGereken.Fiyat);
        }

Bu şekilde test methodu içerisinde tanımladığınız bir nesneyle, controllerdan elde ettiğiniz json tipindeki nesneyi birbiriyle eşitleyerek karşılaştırmasını yapabilirsiniz.