C# 何时在asp.net MVC应用程序中为路由创建单元测试
如果我们不像restfull api那样使用我们的服务和模型,那么在asp.net mvc项目中为路由创建单元测试是有意义的吗? 我正在探索一个使用MvcRouteUnitTester()的项目,其代码如下:C# 何时在asp.net MVC应用程序中为路由创建单元测试,c#,asp.net,asp.net-mvc,unit-testing,C#,Asp.net,Asp.net Mvc,Unit Testing,如果我们不像restfull api那样使用我们的服务和模型,那么在asp.net mvc项目中为路由创建单元测试是有意义的吗? 我正在探索一个使用MvcRouteUnitTester()的项目,其代码如下: using MvcRouteUnitTester; [TestClass] public class RouteTests { [TestMethod] public void TestIncomingRoutes() { var tester =
using MvcRouteUnitTester;
[TestClass]
public class RouteTests
{
[TestMethod]
public void TestIncomingRoutes()
{
var tester = new RouteTester<MvcApplication>();
tester.WithIncomingRequest("/Foo").ShouldMatchRoute("Foo", "Index");
}
}
使用MvcRouteUnitTester;
[测试类]
公共类路由测试
{
[测试方法]
公共无效测试路径()
{
var tester=newroutetester();
带有输入请求(“/Foo”)的测试仪应匹配路由(“Foo”,“Index”);
}
}
如果我总是使用helperURL.Action来创建指向我的foo模型的链接,那么创建这个单元测试仍然有意义吗 一旦您不得不调试应用程序中的突然故障,因为某个路由出现在不打算处理它的控制器中,您就知道您确实想要测试路由。当路由测试开始失败时,捕捉无意中出现的错误要比从现场场景中调试情况容易得多,在现场场景中,您只知道“/whatever”不起作用(或产生奇怪的结果)。但是如果我总是使用方法Url.Action来构建HTML链接,管制员如何处理错误的路线?Action方法接收控制器名称和操作名称,并返回指向该控制器操作的HTML链接。测试路由,正如我下面展示的,它不仅仅是测试这个Url。操作方法?如果这种方法存在于某些API中,那么测试的责任可能是API维护人员,而不是我。如果你能保证没有人会手动构建url,那么可能。并不是每一个程序员都会效仿你的例子。而且,您提供URL并不意味着任何访问者都不会构建URL。因此,您至少应该测试错误、无效、不再使用或未经授权的请求URL是否位于正确的位置。