首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET MVC:使用UrlHelper的单元测试控制器

您好!感谢您的问题。ASP.NET MVC 是一种用于构建 Web 应用程序的框架,它使用了 Model-View-Controller(MVC)设计模式。UrlHelper 是 ASP.NET MVC 中的一个类,它提供了一些方法来帮助生成 URL。

在单元测试中,我们需要测试控制器是否能够正确地生成 URL。为了实现这一点,我们可以使用 UrlHelper 类的一些方法来生成 URL,并将其与预期的 URL 进行比较。

以下是一个简单的示例,展示了如何在控制器中使用 UrlHelper 类的一些方法来生成 URL:

代码语言:csharp
复制
public class HomeController : Controller
{
    public ActionResult Index()
    {
        UrlHelper urlHelper = new UrlHelper(Request.RequestContext);
        string url = urlHelper.Action("About", "Home");
        return Content(url);
    }
}

在这个示例中,我们使用 UrlHelper 类的 Action 方法来生成一个指向 About 页面的 URL。

在单元测试中,我们可以使用 UrlHelper 类的 RouteUrl 方法来生成 URL,并将其与预期的 URL 进行比较。以下是一个简单的示例,展示了如何在单元测试中使用 UrlHelper 类的 RouteUrl 方法来测试控制器:

代码语言:csharp
复制
[TestMethod]
public void TestIndex()
{
    // Arrange
    var controller = new HomeController();
    var request = new RequestContext();
    var urlHelper = new UrlHelper(request);
    controller.Url = urlHelper;

    // Act
    var result = controller.Index() as ContentResult;

    // Assert
    Assert.AreEqual("/Home/About", result.Content);
}

在这个示例中,我们使用 UrlHelper 类的 RouteUrl 方法来生成一个指向 About 页面的 URL,并将其与预期的 URL 进行比较。

总之,ASP.NET MVC 中的 UrlHelper 类提供了一些方法来帮助生成 URL,我们可以使用这些方法来测试控制器是否能够正确地生成 URL。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET MVC 5 - 控制器

本系列教程,我们将覆盖所有这些概念,并告诉您如何在ASP.NET MVC 5中使用它们来构建应用程序。 首先,让我们创建一个控制器类。...ASP.NET MVC会调用不同控制器类(和其内部不同操作方法)这取决于传入URL。...所使用ASP.NET MVC默认URL路由逻辑使用这样格式来判定哪些代码以便调用: /[Controller]/[ActionName]/[Parameters] 你也可在App_Start/RouteConfig.cs...ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB 7. ASP.NET MVC 5 - 从控制器访问数据模型 8. ...ASP.NET MVC 5 - 使用Wijmo MVC 5模板1分钟创建应用 希望这些文章对感兴趣朋友有所帮助,另附上PDF版汇总文档: 《ASP.NET MVC 5 入门指南》PDF版

2.6K80

ASP.NET MVC编程——单元测试

2准备进行单元测试 创建单元测试项目并执行测试应该依据一定准则,运用一些技巧或工具,下面列举了常用技巧和工具。 命名规则 测试类应以被测试单元命名,测试方法名称应能够描述待验证行为。...,但单元测试调用控制器时是不会调用过滤器;此外我们注册全局过滤器也不会被调用。...存储库模式 使用存储库模式,将数据访问逻辑与业务逻辑、控制器分离开来,测试控制器时可以借助此模式方便地模拟依赖,这样将模块合理地切分,实现测试只关注单一功能。...ASP.NET MVC4 Web编程 2.Jon Galloway/Phil Haack/Brad Wilson/K....Scott Allen,孙远帅/邹权译  ASP.NET MVC4 高级编程(第四版) 3.Dino Esposito著,潘丽臣译,ASP.NET MVC5编程实战 ------------------

2.1K50

ASP.NET MVC编程——控制器

视图通过两种方式可以拿到数据: 1)通过控制器操作返回结果(控制器返回结果是数据和视图结合。 2)将结果赋给控制器属性并在View中使用这些属性。...使用异步控制器目的: 异步控制器操作中也要等待任务直至处理完,所以处理速度不比同步方法快,其主要作用是高效地利用服务器资源。...使用异步控制器情形: 可能引发瓶颈长操作,网络或I\O密集型操作,可取消长操作情形。...ASP.NET MVC4 Web编程 2.Jon Galloway/Phil Haack/Brad Wilson/K....Scott Allen,孙远帅/邹权译  ASP.NET MVC4 高级编程(第四版) 3.黄保翕,ASP.NET MVC4开发指南 4.蒋金楠,ASP.NET MVC4框架揭秘 5.https://www.asp.net

2.1K90

ASP.NET MVC (一、控制器与视图)

目录 前言: 1、MVC简介  2、项目创建:(这里使用工具为:Visual Studio 2019)  2.1、文件夹与文件夹介绍: 3、控制器  3.1、添加控制器  3.2、添加视图层  3.3、...修改默认路由 前言: ASP.NET MVC是最简洁、最方便、最高效、最快速小型网站开发方法,本文可以让一个小白用最快速方式学会网站开发。...Controller 控制器是处理用户交互、使用模型并选择视图来显示界面的组件。在 MVC 应用程序中,视图仅显示界面;控制器则用于处理和响应用户输入和交互。 ...当前版本: ASP.NET MVC 5 2013年10月,ASP.NET MVC 5与Visual Studio 2013一起发布。...以下为其主要特性: One ASP.NETWeb项目体验 ASP.NET Identity Bootstrap模板  版本要求: 软件要求 ASP.NET MVC 5需要.NET Framework

1.7K20

Ken杂谈从ASP.NET Core 2.1迁移到3.1

包 将项目依赖所有NuGet包更新至最新版本 update-package 当然,你可以用IDE提供界面进行操作,更加便捷 3、修改MVC注册方式 ASP.NET Core...3.0以后,提供了新MVC服务注册方式,更加灵活 ASP.NET Core 2.x public void ConfigureServices(IServiceCollection services...services) { services.AddRazorPages(); } 4、修改路由启动方式 ASP.NET Core 3.0 中推荐使用端点路由(Endpoint Routing)...引入端点路由主要是为了为不同服务统一提供路由功能,例如:MVC,Razor Pages,Blazor,Signal ASP.NET Core 2.1 路由启动 public void Configure...; }); } 5、UrlHelper创建方式兼容 由于 ASP.NET Core 2.2 之后,启动路由有两种方式,如果直接使用 new UrlHelper()方式会出现Exception

1.5K20

ASP.NET MVC 重点教程一周年版 第七回 UrlHelper

这节讲 一下ASP.NET MVCHelper。 何谓Helper,其实就是在View中为了实现一些灵活功能而写方法组。...其实ASP.NET MVCView是Aspx页面,本身可以声明定义方法,那为什么要有Helper呢?...其实无非是将界面与逻辑分离,而且Asp.net MVC也并不只支持Aspx一种View(还可以扩展出来很多),在扩展包中,也有CastleNVelocity引擎和Boo,以及ViewSpark页面。...一、UrlHelper.Action UrlHelperAction方法 用于生成一个URL地址,它使用方法为 当前Controller下Index这个Action <%=Url.Action(“Index...二、UrlHelper.Encode 这也是UrlHelper一个方法 使用方法 如功能与Server.UrlEncode相同,这里不多说了 三、UrlHelper.Content

63030

ASP.NET MVC学习笔记02控制器和路由

上一篇大致说了下ASP.NET MVC到底是什么,以及MVC思想,下面我们就继续依照官方文档,从MVCC开始入手,也就是控制器。...基于MVC模式应用程序包含: Models: 表示该应用程序数据并使用验证逻辑来强制实施业务规则数据类。 Views: 应用程序动态生成 HTML所使用模板文件。...ASP.NET MVC会调用不同控制器类(和其内部不同操作方法)这取决于传入URL。 所使用ASP.NET MVC默认URL路由逻辑使用这样格式来判定哪些代码以便调用。...当我们在VS中创建一个新 ASP.NET MVC程序,程序将会自动使用默认路由表。 默认路由表 默认路由表存放在App_Start/RouteConfig.cs 中。 ?...默认MVC映射为 /[Controller]/[ActionName]/[Parameters] 对于这个URL,控制器类是Hello,操作方法是Welcome,目前还没有使用过URL[Parameters

1.5K40

ASP.NET MVC路由扩展:链接和URL生成

为了编程方面,ASP.NET MVC为了设计了HtmlHelper和UrlHelper这两个帮助类,我们可以通过调用它们ActionLink/RouteLink和Action/RouteUrl根据注册路有规则生成链接或者...如果在构造UrlHelper时候没有指定RouteCollection对象,那么通过RouteTable静态属性Routes表示全局路有表将直接被使用。...URL生成逻辑 为了让读者对UrlHelper如果利用ASP.NET路由系统进行URL生成逻辑具有一个深刻认识,我们接下来创建一个名为RouteHelper等效帮助类。...但是在有的时候,我们需要针对注册某个具体路由对象来生成URL或者对应链接,这时候就需要使用UrlHelper和HtmlHelper另外一组方法了。...MVC路由扩展:路由映射 ASP.NET MVC路由扩展:链接和URL生成

1.7K70

Task及Mvc异步控制器 使用探索

微软Task已经出来很久了,一直没有去研究,以为就是和Thread差不多东西。直到最近看到了Task使用介绍,发现比Thread语法要精炼多了,于是便在项目中用上了。...Task也研究差不多了。 下面我们来谈一下Task使用........当点击button1时程序会一直等待结果返回,期间窗体无法拖动 而用异步方法则不会阻塞主窗体其他操作 AsyncController 看过很多在Action中使用异步action文章,并以此和未使用异步...所以异步函数在合适场景被正确地使用也是非常重要) 最终看了Msdn上关于异步控制器介绍,方才找到正确写法 以下是截取MSdn上代码片段 首先使用 AsyncManager.OutstandingOperations.Increment...然后我将iis最大并发设置为10,模拟了一个20并发200条请求操作, 异步控制器用时3.001s,失败0条 普通控制器用时4.551s,失败8条 测试完成,希望对有需要的人有所帮助

59720

ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

一、前言 1、本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET Core...MVC控制器操作简介返回类型示例 ASP.NET Core MVC控制器参数映射逻辑说明 ASP.NET Core MVC控制器参数映射/获取示例 2、本教程环境信息 软件/环境 说明 操作系统 Windows.../item/mvc 二、ASP.NET Core MVC 控制器简介 1、ASP.NET Core MVC 控制器概述 在MVC Web框架中,路由模块会对接收到请求进行匹配并转交由对应控制器(Controller...为了搭配视图引擎使用ASP.NET Core MVC 框架内置了 Microsoft.AspNetCore.Mvc.Controller类,提供了一些视图引擎需要特性。...Core MVC 控制器操作简介 1、ASP.NET Core MVC 控制器操作概述 控制器(Controller)操作(Action)就是控制器接收到请求后实际用与处理请求程序方法/函数。

2.2K40

ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

一、前言 1、本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET Core...MVC控制器操作简介返回类型示例 ASP.NET Core MVC控制器参数映射逻辑说明 ASP.NET Core MVC控制器参数映射/获取示例 2、本教程环境信息 软件/环境 说明 操作系统 Windows.../item/mvc 二、ASP.NET Core MVC 控制器简介 1、ASP.NET Core MVC 控制器概述 在MVC Web框架中,路由模块会对接收到请求进行匹配并转交由对应控制器(Controller...为了搭配视图引擎使用ASP.NET Core MVC 框架内置了 Microsoft.AspNetCore.Mvc.Controller类,提供了一些视图引擎需要特性。...Core MVC 控制器操作简介 1、ASP.NET Core MVC 控制器操作概述 控制器(Controller)操作(Action)就是控制器接收到请求后实际用与处理请求程序方法/函数。

1.9K10

ASP.NET MVC使用Bootstrap系列(5)——创建ASP.NET MVC Bootstrap Helpers

序言 ASP.NET MVC允许开发者创建自定义HTML Helpers,不管是使用静态方法还是扩展方法。一个HTML Helper本质上其实是输出一段HTML字符串。...当然对于这些可重用代码,开发者也方便对他们进行单元测试。所以,创建ASP.NET MVC Bootstrap Helpers是及其有必要。...其中,它产生一个Button类型HTML标记并设置了Bootstrap样式。 注意:任何自定义helpers必须存在App_Code文件夹中,这样才能被ASP.NET MVC视图识别。...内置ASP.NET MVC helper(@HTML)是基于扩展方法,我们可以再对上述静态方法进行升级——使用扩展方法来创建Bootstrap helpers。...创建自动闭合Helpers 在ASP.NET MVC中,内置@HTML.BeginForm() helper就是一个自动闭合helper。

1.4K80

ASP.NET Core 基础知识】--路由和请求处理--路由概念(二)

二、路由生成 2.1 使用UrlHelper生成URL 在ASP.NET Core中,UrlHelper是一个用于生成URL实用程序类,它提供了生成各种类型URL方法。...以下是使用UrlHelper生成URL基本示例: public class MyController : Controller { public IActionResult MyAction(...四、路由中间件 路由中间件在ASP.NET Core中起着关键作用,它负责根据传入HTTP请求确定应该由哪个控制器哪个动作方法来处理。...以下是关于ASP.NET Core中路由中间件一些关键概念: 路由中间件位置: 路由中间件通常位于中间件管道中早期位置,以确保在请求到达控制器之前进行路由解析。...路由模板: 路由中间件使用路由模板定义路由规则,其中包括控制器、动作方法以及其他可能参数。

3500

ASP.NET MVC 5 - 将数据从控制器传递给视图

相比只返回一个字符串,让我们来改变控制器,来使用视图模板吧。视图模板将生成动态HTML,这意味着您需要通过适当方式把数据从控制器传递给视图,从而才能生成动态HTML。...然后视图为用户生成显示所需HTML。 ? 在上面的示例中,我们使用了ViewBag对象把数据从控制器传递给了视图。在本系列教程后面的文章中,我们将使用视图模型来将数据从一个控制器传递到视图中。...ASP.NET MVC 5 - 开始MVC 5之旅 2. ASP.NET MVC 5 - 控制器 3. ASP.NET MVC 5 - 视图 4. ...ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB 7. ASP.NET MVC 5 - 从控制器访问数据模型 8. ...ASP.NET MVC 5 - 使用Wijmo MVC 5模板1分钟创建应用 希望这些文章对感兴趣朋友有所帮助,另附上PDF版汇总文档: 《ASP.NET MVC 5 入门指南》PDF版

5K100
领券