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

.NET核心单元测试剃刀页面RedirectToPage()

()是一个用于测试ASP.NET Core Razor页面的方法。它用于验证在处理请求时,页面是否正确地重定向到另一个页面。

具体来说,RedirectToPage()方法接受一个字符串参数,该参数指定要重定向到的页面的路径。该方法会返回一个RedirectToPageResult对象,可以通过该对象进行进一步的断言和验证。

在单元测试中,我们可以使用该方法来验证在特定条件下,页面是否正确地重定向到了预期的页面。例如,我们可以模拟一个请求,并断言在某个条件下,调用RedirectToPage()方法后,返回的重定向结果是否与预期的页面路径相匹配。

在ASP.NET Core中,单元测试通常使用xUnit或NUnit等测试框架进行编写。下面是一个示例代码,演示了如何使用xUnit和Moq来编写一个针对RedirectToPage()方法的单元测试:

代码语言:txt
复制
using Microsoft.AspNetCore.Mvc;
using Moq;
using Xunit;

namespace MyProject.Tests
{
    public class MyPageTests
    {
        [Fact]
        public void TestRedirectToPage()
        {
            // Arrange
            var mockPageModel = new Mock<MyPageModel>();
            var expectedPagePath = "/SomeOtherPage";

            // Act
            var result = mockPageModel.Object.OnPost();

            // Assert
            var redirectToPageResult = Assert.IsType<RedirectToPageResult>(result);
            Assert.Equal(expectedPagePath, redirectToPageResult.PageName);
        }
    }
}

在上述示例中,我们使用了Moq来创建一个MyPageModel的模拟对象,并调用其OnPost()方法。然后,我们使用Assert来验证返回的结果是否是一个RedirectToPageResult,并且重定向的页面路径是否与预期相符。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库MySQL版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网套件:https://cloud.tencent.com/product/iot-suite
  • 腾讯云移动推送:https://cloud.tencent.com/product/tpns
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云视频处理服务:https://cloud.tencent.com/product/vod
  • 腾讯云音视频通信(TRTC):https://cloud.tencent.com/product/trtc
  • 腾讯云云原生应用引擎(TKE):https://cloud.tencent.com/product/tke

请注意,以上链接仅供参考,具体的产品选择应根据实际需求和情况进行评估和选择。

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

相关·内容

.NET单元测试的艺术-2.核心技术

这一篇中我们会开始接触这些核心技术,借助存根破除依赖,使用模拟对象进行交互测试,使用隔离框架支持适应未来和可用性的功能。 一、破除依赖-存根 1.1 为何使用存根?   ...在.NET项目中,我们仍然可以通过NuGet来安装NSubsititute: ? 3.3 使用NSubstitute模拟对象   NSub是一个受限框架,它最适合为接口创建伪对象。...四、小结   本篇我们学习了单元测试核心技术:存根、模拟对象以及隔离框架。使用存根可以帮助我们破除依赖,模拟对象与存根的区别主要在于存根不会导致测试失败,而模拟对象则可以。...(1)Roy Osherove 著,金迎 译,《单元测试的艺术(第2版)》   (2)匠心十年,《NSubsititue完全手册》   (3)张善友,《单元测试模拟框架:NSubstitute》 作者:...周旭龙 出处:http://edisonchou.cnblogs.com 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

1.7K20

ASP.NET Core Razor Pages 初探

最近新建 Asp.net Core MVC 项目的时候不小心选错了个模板,发现了一种新的项目模板。它使用cshtml视图模板,但是没有Controller文件夹。...后来才发现这是ASP.NET Core框架新推出的Razor Pages技术。 什么是Razor Pages “Razor Pages 使编码更加简单更加富有生产力”这是微软说的==!。...一共包含4个页面:列表页面、新增页面、修改页面、删除页面。首先我们新建一个列表页面。 在Pages目录下面新建Student目录。...我见过号称精通asp.net的同学,但是对html、特别是对http一无所知。当你了解了真相后,甭管你用什么技术,看起来其实都是一样的,都是套路。...在后台方法进行页面导航 当保存成功后需要使页面跳转到列表页面,可以使用RedirectToPage等方法进行跳转,OnPostSave方法的返回值类型也改成IActionResult,这就非常mvc了,

2K20
  • asp.net core 系列之用户认证(authentication)

    ASP.NET Core 的 identity 是一种需要用户登录的会员系统,用户可以创建一个登录信息存储在 Identity 的的账号, 或者也可以使用第三方登录,支持的第三方登录包括:Facebook...当然你也可以选择其他的存储工具进行存储 这篇教程,将会讲解如何使用Identity进行用户的注册,登录,登出 1.创建一个带认证(authentication)的web应用 文件->新建->项目 选择ASP.NET...生成的项目会提供 ASP.NET Core Identity 功能,并且 Identity area 会暴露 下面几个 终端(endpoint): /Identity/Account/Login /Identity...LocalRedirect(returnUrl); } if (result.RequiresTwoFactor)  //两步验证 { return RedirectToPage...Authrize前后): 加之前:不需要登录,即可访问Privacy页面 加之后:需要登录,才能访问此页面 这里先记录添加Identity操作流程,之后会具体讲解一些功能点

    2.1K10

    Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板

    Scaffolding Template Intro 我们知道在Asp.Net MVC中,如果你使用的EF的DBContext的话,你可以在vs中通过右键解决方案-添加控制器-添加包含视图的控制器,然后...大家知道近期Asp.Net Core2.0发布了,微软也推出了Razor Page来作为默认的Asp.Net Core Web项目,但一开始并没有提供Scaffolding Template(后简称ST...)功能,使我们每次对于一个Model需要进行4-5个页面和PageModel的编写,代码量比Asp.Net MVC多了不少,好在ST及时出现,不过这次并没有结合到VS中,我们需要通过添加一个生成包及CMD...return Page(); } _context.Blog.Add(Blog); await _context.SaveChangesAsync(); return RedirectToPage...PS:asp.net core QQ学习群:376248054 通关密码:cnblogs(无密码一律不通过)

    1.1K60

    ASP.NET Core教程【二】从保存数据看Razor Page的特有属性与服务端验证

    前文索引: ASP.NET Core教程【一】关于Razor Page的知识 在layout.cshtml文件中,我们可以看到如下代码: <a asp-page="/Index" class="navbar-brand..._context.Movie.Add(Movie); await _context.SaveChangesAsync(); return <em>RedirectToPage</em>.../Index"); } }} 一般我们在OnGet方法中初始化页面需要的状态数据; 这个页面没有状态数据需要初始化,所以我们就不用做任何事情 Page()方法返回一个PageResult...对象,该对象负责渲染这个页面; Movie属性被标记了BindProperty标记,说明它是一个“模型绑定”对象; 当表单提交过来的时候,asp.net core负责把表单提交的数据,绑定到这个对象上;...表单提交之后,OnPostAsync方法被执行, 如果提交的数据,在绑定到Movie对象的过程中,产生了异常,那么Page方法会被重新执行,等于刷新了一遍页面; 大部分数据验证的工作是在客户端通过JS

    1.6K50

    ASP.NET Core教程【三】实体字段属性、链接标签、并发数据异常、文件上传及读取

    前文索引: ASP.NET Core教程【二】从保存数据看Razor Page的特有属性与服务端验证 ASP.NET Core教程【一】关于Razor Page的知识 实体字段属性 再来看看我们的实体类...Price { get; set; } } 说明,上面的代码需要引用:using System.ComponentModel.DataAnnotations; Display属性标志这个字段在页面上显示的时候...如果你想让页面接收一个字符串,可以把这个“路由模版”写成如下这个样子: @page "{searchString?}"...return NotFound(); } else { throw; } } return RedirectToPage...UploadPublicSchedule { get; set; } }} 我们只要关注第二个字段即可,UploadPublicSchedule是一个IFormFile类型的字段; 当表单提交后,ASP.NET

    1.6K60

    这是有赞的分层自动化测试实践

    其中Unit代表单元测试,Service代表服务集成测试,UI代表页面级的系统测试。分层的自动化测试倡导产品的不同层次都需要自动化测试,这个金字塔也正表示不同层次需要投入的精力和工作量。...拆分之后iron只剩下和前端交互的展现层逻辑,以及调用核心业务的API层 核心业务:Iron系统拆分出来的核心业务 这一层的被测对象是抽离了展现层的代码(前端以及部分后端展现层逻辑)。...页面截图比对校验UI样式。 UI层的自动化测试也是由测试人员负责,在覆盖了核心业务核心场景之后,不应该在这层的自动化覆盖上投入太多的精力和资源。...单元测试: 优先级最高 粒度最细、覆盖面最全 开发实施 服务测试 对测试来说优先级最高 从业务场景的角度切入 系统外部接口100%覆盖 关注系统间的依赖和调用 测试实施 页面测试 优先级相对最低 只保证核心功能的自动化覆盖...投稿邮箱:jiachen@greatops.net 或 添加联系人微信:135 2116 9787(同微信)。

    1.4K10

    使用Azure DevOps Pipeline实现.Net Core程序的CI

    上次介绍了Azure Application Insights,实现了.net core程序的监控功能。这次让我们来看看Azure DevOps Pipeline功能。...它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。 Martin Fowler说过,"持续集成并不能消除Bug,而是让它们非常容易发现和改正。"...创建仓库 点击继续之后页面会跳转到正式的Azure DevOps界面。首先需要创建一个项目。...创建ASP.NET MVC项目 新建一个ASP.NET MVC项目,就默认的示例项目就行。 ? 为了让pipeline执行单元测试,所以我们新建一个单元测试功能,然后写一个最简单的单元测试方法。...command: 'test' 运行单元测试。 配置好yml之后点击“SAVE AND RUN”就会执行第一次pipeline的任务。

    72320

    Lightweight Test Automation Framework之旅

    自动化测试弹出窗口:之前的版本中无法测试弹出窗口,相对于WatiN和Selenium等来说是一个硬伤,老赵在对ASP.NET MVC项目中的视图做单元测试中曾认为这是一个永远无法弥补的缺点。...由于直接部署在被测试的网站中,因此测试代码和网站页面是在同一个进程中。 第一点优势自不必说,而第二点更是关键。试想WatiN和Selenium,都是通过编写代码在浏览器中打开页面。...你可以用C#(任何.Net语言)编写测试用例,每个测试用例非常像传统的单元测试,写下一系列的测试命令(例如跳转到URL, 单击按钮, 获取内容, 检查文本内容)。...你所需要做的工作就是在你的应用程序的Web项目下增加一个Tests文件夹,里面包含两个页面 Default.aspx 和 DriverPage.aspx,下图是它的工作原理图: ?...MVC项目中的视图做单元测试 Using HtmlUnit on .NET for Headless Browser Automation HtmlUnit调研报告

    1.8K90

    使用ASP.NET实现Model View Presenter(MVP)

    ASP.NET使用后置代码页面方式隔离业务逻辑。虽然用心良苦,但是ASP.NET在企业级应用开发方面还是存在如下的不足: l 后置代码页中混合了表现层,业务逻辑层,数据访问层的代码。...单元测试应当是简单快速的。 可以采用各种技术手段是后置代码页保持分离。例如Castle MonoRail项目仿效Ruby-On-Rails ,但是放弃了ASP.NET的事件模型。...单元测试中创建的第一个对象实例是MockCurrentTimeView,从这个单元测试中可以看出,所有的表现逻辑的单元测试并没有一个ASPX页面(View),所需要的是一个实现视图接口的对象;因此可以创建一个视图的模拟对象...我们已经从创建ASPX页面到一个Presenter类,一个View接口和一个单元测试类……,我们获得的好处是对Presenter的单元测试,也就是很容易的对后置代码页面进行单元测试。...在企业级ASP.NET应用中使用MVP l 使用用户控件封装Views:这个主题讨论用户控件作为MVP中的View l MVP的事件处理:这个主题讨论连同页面验证传递事件到Presenter,IsPostBack

    1.1K80

    《解构领域驱动设计》思维导图

    《解构领域驱动设计》全书的脉络是按照领域驱动设计统一过程的脉络开展叙述的,核心内容就是构成领域驱动设计统一过程的三个阶段: 全局分析阶段 架构映射阶段 领域建模阶段 思维导图总结的正是这三部分内容...对归类的业务服务提炼其共同特征,归纳为业务主体 调整业务主体的边界,包括根据亲密度调整业务服务,根据限界上下文的本质调整业务服务 根据验证原则进一步验证限界上下文,验证原则包括:单一抽象层次原则、奥卡姆剃刀原则...主要内容为: 以领域为核心驱动力 以业务能力为核心关注点 系统上下文层次:系统分层架构 限界上下文层次:菱形对称架构 03 领域建模阶段 领域建模阶段属于领域驱动设计的战术设计阶段,我将其分为三个环节:...聚合不依赖任何外部资源,非常易于编写单元测试。领域服务的单元测试可以通过模拟端口来编写。应用服务编写集成测试。远程服务编写契约测试。 服务驱动设计与测试驱动开发可以很好的结合起来。...,不可编写生产代码 只可编写刚好无法通过的单元测试,不能编译也算不通过 只可编写刚好足以通过当前失败测试的生产代码 测试驱动开发对于领域驱动设计虽非必要,但它有助于提升领域实现模型的质量。

    61610

    Magicodes.IE编写多框架版本支持和执行单元测试

    虽然支持标准库2.0,但是通过编写单元测试,确实发现如此: ? 因此,单元测试确实需要针对各个框架版本进行测试,并且相关代码需要针对框架进行兼容修改。那么如何实现呢?接下来我们一步步实践。..., NET46 , NET461 , NET462 , NET47 , NET471 , NET472 , NET48 Magicodes.IE之多框架版本测试 了解了这些知识,我们就可以编写多框架版本的实现和单元测试了...单元测试添加多框架支持 修改TargetFramework为TargetFrameworks ? 设置分组 根据目标框架分组: ? 修复编译错误 执行单元测试 单元测试结果如下图所示: ?...针对具体的单元测试,我们还可以指定目标框架进行运行和调试: ? 总结和经验分享 结合整改的过程,我们可以得出以下经验: 单元测试编写时的异常消息判断尽量使用字符串包含判断,而不判断完整格式。 ?...本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    61210

    专业上的常用的工具和类库集

    Unit Test Generator:可以帮助快速生成单元测试项目和测试方法定义,提高单元测试编写效率。...AngularJS SPA Template:基于AngularJS的单页面应用开发项目模板 jQuery Code Snippets:130多个jQuery代码片段,这是是依赖jQuery开发前端的福音啊...官方网站: https://github.com/carhartl/jquery-cookie jQuery.Hotkeys jQuery的前端热键插件,用于给web页面提供快捷热键功能。...官方网站: http://www.modernizr.com RequireJS 国际上非常流行的前端js模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更简单自然...,目前ASP.NET MVC官方团队全部使用的xUnit框架编写的ASP.NET MVC单元测试

    2.7K90
    领券