15

RedirectToRouteResult मैं अपने नियंत्रक में निम्न कोड है:यूनिट परीक्षण

public class MyController : BaseController 
{ 
    public ActionResult MyMethod() 
    { 
     ... 
     return RedirectToAction("Index", "Dashboard"); 
    } 
} 

मैं इकाई परीक्षण करना चाहते हैं इस रीडायरेक्ट (RedirectToRouteResult)।

Assert.IsTrue(result.RouteValues.ContainsKey("action")); 
Assert.IsTrue(result.RouteValues.ContainsKey("controller")); 
Assert.AreEqual("Index", result.RouteValues["action"].ToString()); 
Assert.AreEqual("Dashboard", result.RouteValues["controller"].ToString()); 

तो मैं चार मेरी RedirectToRouteResult परीक्षण करने के लिए दावा है की जरूरत है: मैं इसे इस तरह से किया है। क्या कोई और अधिक प्रभावी तरीका है?

+0

यह पर्याप्त जब से तुम हाँ, मैं इसे इस तरह करते हैं यह – Amit

+0

आईडी भी assert.instanceoftype है: RedirectToRouteResult परिणाम = (RedirectToRouteResult) controller.Captcha (loginUseraccount); यदि यह एक RedirectToRouteResult नहीं है तो अपवाद फेंक दिया गया है और परीक्षण विफल हो जाता है। – Slicksim

+1

ActionResult लौटने है – mosquito87

उत्तर

7

एक अधिक कुशल तरीका है क्योंकि आप इन दो पंक्तियों

Assert.IsTrue(result.RouteValues.ContainsKey("action")); 
Assert.IsTrue(result.RouteValues.ContainsKey("controller")); 

उन कोड के लिए दावे जो आप नहीं लिखा है कर रहे हैं परीक्षण करने के लिए की जरूरत नहीं है नहीं है। आपको भरोसा करना होगा कि जो कोड लिखते हैं उनके पास स्वयं के यूनिट परीक्षण होते हैं। यदि सभी बाधाओं के खिलाफ पहली दो पंक्तियां दोषपूर्ण होंगी, तो आपके दो अंतिम दावे विफल हो जाएंगे।

संबंधित मुद्दे