3
當我的控制器正常運行時,將填充RouteData。但是當我運行或調試測試時,RouteData爲空。 ASP.NET MVC5。通過單元測試調用時,MVC RouteData在控制器中爲空
控制器
public class HomeController : Controller
{
public ActionResult Index()
{
var controller = this.RouteData.Values["controller"]; // null ref exception
var action = this.RouteData.Values["action"];
var id = this.RouteData.Values["id"];
ViewBag.Message = string.Format("{0}::{1} {2}", controller, action, id);
return View();
}
測試
[TestClass]
public class HomeControllerTest
{
[TestMethod]
public void Index()
{
HomeController controller = new HomeController();
ViewResult result = controller.Index() as ViewResult;
Assert.AreEqual(false, string.IsNullOrWhiteSpace(result.ViewBag.Message));
}
這個預期?這是因爲在測試直接實例化時,路由引擎不參與調用控制器嗎?
嘿!我遇到了同樣的問題。 @Shoe你是什麼意思的「新件」? –
@AjayAradhya例如像'new RouteData()'的東西。 – Shoe
工作..謝謝! –