मैं एमवीसी 4 .NET 4.5 में अपने नियंत्रक के पुनर्निर्देशन का परीक्षण करने की कोशिश कर रहा हूं। यहाँ एक उदाहरण है:यूनिट परीक्षण एमवीसी 4 रीडायरेक्ट टॉक्शन
[HttpPost]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
var userToRegister = new User { Email = model.Email, Password = model.Password };
var service = new UserService(_userRepository);
User user = service.RegisterUser(userToRegister);
if (user.UserErrorMessages.Count != 0)
{
user.UserErrorMessages.ForEach(x => ModelState.AddModelError("", x));
return View(model);
}
SetCookie(model.Email);
return RedirectToAction("Index", "Home");
}
return View(model);
}
मुद्दा चर result
यूनिट टेस्ट में null
है:
[TestMethod]
public void Register_PassValidModel_RedirectToHomeIndexShouldBeTrue()
{
//Arrange
var registerModel = new RegisterModel
{
Email = "[email protected]",
Password = "password"
};
//Assign
var result = _controller.Register(registerModel) as RedirectToRouteResult;
//Assert
result.RouteValues["Action"].ShouldBeEqual("Index");
result.RouteValues["Controller"].ShouldBeEqual("Home");
}
यहाँ नियंत्रक है। मुझे यह कोड किसी ऐसे व्यक्ति से मिला जो एमवीसी 2 प्रोजेक्ट पर काम कर रहा था और यह उसके लिए काम करना प्रतीत होता था। क्या एमवीसी 4 के साथ कुछ बदल गया है?
अग्रिम धन्यवाद!
क्या आप वाकई कार्रवाई वास्तव में RedirectToAction देता हैं ("सूचकांक", "घर")? पंजीकरण कार्रवाई में कुछ तर्क होना चाहिए। यदि यह किसी अन्य प्रकार का परिणाम देता है और आप इसे RedirectToRouteResult के रूप में बनाने की कोशिश कर रहे हैं, तो आप शून्य से प्राप्त करेंगे। – Felix
जब मैंने कोशिश की तो मुझे एक RedirectToRouteResult ऑब्जेक्ट वापस मिला। क्या आप सुनिश्चित हैं कि आपका नियंत्रक ऐसा ही दिखता है? – Rickard
मुझे लगता है कि आपको ViewResult – VJAI