如何在ASP.NET MVC中对IgnoreRoute进行单元测试
-
03-07-2019 - |
题
在ASP.NET MVC中,我可以获得有关路由和自定义路由的单元测试的信息,但我无法弄清楚如何对IgnoreRoute进行单元测试。
routes.IgnoreRoute(QUOT; {资源}个.axd / {* PATHINFO}&QUOT);
非常感谢实用代码。
解决方案
我会检查RouteData上与被忽略路径匹配的路由的RouteHandler是否类型为StopRoutingHandler;
[TestMethod]
public void TestIgnoredRoute()
{
// Arrange
var routes = new RouteCollection();
GlobalApplication.RegisterRoutes(routes);
// Act
var context = new FakeHttpContext("~/some.axd/path");
var routeData = routes.GetRouteData(context);
// Assert
Assert.IsInstanceOfType( routeData.RouteHandler, typeof(StopRoutingHandler) );
}
其他提示
如果您使用MvcContrib testhelper类(http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci),您可以进一步简化:
[TestMethod]
public void TestIgnoredRoute()
{
// Arrange
RouteTable.Routes.Clear();
// Act
GlobalApplication.RegisterRoutes(RouteTable.Routes);
// Assert
"~/some.axd/path".ShouldBeIgnored();
}
不隶属于 StackOverflow