MVC3 içinde bir kontrol cihazım var, bir şeyler yanlış giderse 500 bir cevap kodu döndürmesi gerekiyor. Bunu bir görüntüleme nesnesini döndürerek ve http yanıt kodunu 500'e eşit olarak ayarlayarak yapıyorum (bunu ateş böceğinde kontrol ettim ve her şey harika çalışıyor).MVC3 birim test yanıtı kodu
public ActionResult http500()
{
ControllerContext.HttpContext.Response.StatusCode = 500;
ControllerContext.HttpContext.Response.StatusDescription = "An error occurred whilst processing your request.";
return View();
}
Şimdi sahip olduğum problem, yanıt kodunu kontrol eden bir birim testi yazabilmem gerekiyor. Yanıt koduna hem ViewResult nesnesi hem de Denetleyici içeriği aracılığıyla çeşitli şekillerde erişmeyi denedim.
İki yol da bana denetleyicide ayarladığım yanıt kodunu verir.
[TestMethod()]
public void http500Test()
{
var controller = new ErrorController();
controller.ControllerContext = new ControllerContext(FakeHttpObject(), new RouteData(), controller);
ViewResult actual = controller.http500() as ViewResult;
Assert.AreEqual(controller.ControllerContext.HttpContext.Response.StatusCode, 500);
}
nasıl denetleyicisinden yanıt kodu 500 alma hakkında gitmek veya bir entegrasyon test şey bu daha olacaktır.
, orada bir sens olduğunu Hem durum kodu yanıtı hem de görünüm/model sonucunu taklit etmenin yolu nedir? Mantıklı bir seçenek düşünmeye çalışıyorum. – dougajmcdonald
iyi soru @dougajmcdonald. bir cevap aldın mı – richardwhatever