Çalışabilirim, ancak en iyi uygulamanın ne olduğunu ve nedenini bilmek istiyorum. Bir Denetleyicim, bir Model ve bir Havuzum var ve şimdi Denetleyiciye Birim Testini istiyorum. Doğru görüntünün döndüğünden emin olmak için basit bir test yapıyorum.Birim Bir Denetleyiciyi Sınama - Bağlantı Dizesini Nasıl Kullanırım?
public ActionResult Selections(SelectionsViewModel model)
{
for (int i = 0; i < model.Sends.Count; i++)
{
Send send = new Send(new SendService(new Database().GetConnectionString()))
{
SendID = model.Sends[i].SendID,
Title = model.Sends[i].Title,
Subject = model.Sends[i].Subject,
SentDate = model.Sends[i].SentDate,
TimesViewed = model.Sends[i].TimesViewed,
Include = model.Sends[i].Include,
Exclude = model.Sends[i].Exclude
};
send.UpdateIncludeExclude();
}
return View(model);
}
İşte benim SendService yapıcı aracılığıyla gönderiliyor Veritabanı sınıfta benim GetConnectionString() yöntemidir:
Bu denetleyici benim yöntemidir.
public string GetConnectionString()
{
return System.Configuration.ConfigurationManager.ConnectionStrings["DEVConnectionString"].ToString();
}
Ve son olarak, benim birim testi:
[Test]
public void TestAssignmentSelections()
{
var obj = new AssignmentController();
var actResult = obj.Selections() as ViewResult;
NUnit.Framework.Assert.That(actResult.ViewName, Is.EqualTo("Selections"));
}
Şimdi benim birim test başarısız olur ve neden olsun. Ünite test projem, bağlantı dizilimin bulunduğu yerde test ettiğim projenin web.config dosyasına erişemiyor.
Bazı araştırmalar yaptım ve görünüşe göre sadece bir web.config'i ünite test projeme ekledim ve bağlantı dizesini buraya yerleştirmek de işe yaratacaktır .. ama bu bir kesmek gibi görünüyor.
Bu konuda gitmenin en iyi yolu nedir? Kodumu buna uygun olarak yazmanın başka bir yolu var mı?
Bu yardımcı oldu, bence bazı değişiklikler yapacağım. Teşekkür ederim. – halterdev