Asp.net mvc 单元测试Asp.NETMVC路由:选择哪种方法?
我是新的Asp.NETMVC和单元测试,所以如果问题有点愚蠢,我提前道歉 当单元测试传入路由时,我们必须向路由系统提供一个URL,并验证该URL是否得到正确处理 1但是如果路由单独测试,那么一个特定的单元测试将测试不超过一个路由,或者所有路由作为一个整体进行测试,即每个单元测试将测试RouteCollection.GetRouteData…返回的一个实例。。。;或者两者都有 2如果1的答案是路由应该作为一个整体进行测试,那么我很难理解我们需要向路由系统传递多少URL才能确保它正常工作: a据我所知,我们是否需要传递至少和注册路由一样多的URL,其中每个URL都应该由不同的路由处理,这样所有路由都有机会处理一个URL 所有的url应该在单个单元测试中进行测试,还是应该对每个url进行一个单元测试?如果是后者,那么单元测试的数量会不会与每个单元测试只测试一条路由相同 c假设我们向路由系统添加一条新路由,那么我们很可能还需要修改现有的单元测试,以便它们继续正常工作,而如果我们单独测试路由,那么就不需要修改现有的单元测试了Asp.net mvc 单元测试Asp.NETMVC路由:选择哪种方法?,asp.net-mvc,unit-testing,routes,Asp.net Mvc,Unit Testing,Routes,我是新的Asp.NETMVC和单元测试,所以如果问题有点愚蠢,我提前道歉 当单元测试传入路由时,我们必须向路由系统提供一个URL,并验证该URL是否得到正确处理 1但是如果路由单独测试,那么一个特定的单元测试将测试不超过一个路由,或者所有路由作为一个整体进行测试,即每个单元测试将测试RouteCollection.GetRouteData…返回的一个实例。。。;或者两者都有 2如果1的答案是路由应该作为一个整体进行测试,那么我很难理解我们需要向路由系统传递多少URL才能确保它正常工作: a据我所
谢谢你你应该小心这些类型的测试,因为你可以很容易地测试Asp.Net MVC代码,而微软大概就是这么做的。例如:这些测试不是在测试GetRouteData方法的功能吗 除非我误解了您的意思,否则听起来您只是想确保正确配置路由数据 <>我认为这类配置代码只是简单的一部分,不受单元测试的影响。这有几个原因: 配置可能发生在组合根目录中,例如,在global.asax中的应用程序_Start中 任何配置都会将系统初始化为技术正确的状态。就像您将生产组件替换为生产组件一样。系统工作正常;它只是需要为生产进行不同的配置 这些配置很可能在未来发生变化。例如,您提到可以稍后添加新路线。现有路线也有可能改变 端到端/将确保应用程序不会返回404,如果路由数据配置不正确,通常会发生这种情况
在考虑这一点之后,如果您在测试配置时保持不动摇,那么考虑创建一个处理此配置的抽象。也就是说,在注册这些路由的边界处
这将允许您模拟对Asp.NETMVC框架的调用,并验证是否发送了预期的配置