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

如何使用rhino mocks在MVC RC1中存根HttpSessionState?

在MVC RC1中使用Rhino Mocks存根HttpSessionState,可以通过以下步骤实现:

  1. 首先,确保已经安装了Rhino Mocks库。可以通过NuGet包管理器进行安装:
代码语言:txt
复制
Install-Package Rhino.Mocks
  1. 在测试方法中,创建一个HttpSessionStateBase的模拟对象:
代码语言:csharp
复制
var httpSessionState = MockRepository.GenerateStub<HttpSessionStateBase>();
  1. 使用模拟对象存根HttpSessionState中的方法。例如,存根Session["key"]的get和set方法:
代码语言:csharp
复制
httpSessionState.Stub(x => x["key"]).Return("value");
httpSessionState.Stub(x => x["key"] = "new value");
  1. 在控制器中注入模拟的HttpSessionState对象:
代码语言:csharp
复制
var controller = new MyController();
controller.ControllerContext = new ControllerContext(
    new RequestContext(new HttpContextWrapper(HttpContext.Current), new RouteData()),
    controller);
controller.ControllerContext.HttpContext.Stub(x => x.Session).Return(httpSessionState);
  1. 现在,在测试中调用控制器方法,并验证是否使用了存根的HttpSessionState:
代码语言:csharp
复制
var result = controller.MyAction();
Assert.AreEqual("value", controller.ControllerContext.HttpContext.Session["key"]);

这样,就可以在MVC RC1中使用Rhino Mocks存根HttpSessionState了。

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

相关·内容

在Unity3d中如何使用MVC框架(Unity3D)

MVC在桌面应用程序,以及网页架构上面用的比较多,那么怎么应用到Unity3d中呢,下面就带大家去了解这个设计框架,以及如何在Unity中应用。...MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。...模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。...fr=aladdin&fromid=85990&fromtitle=MVC 四、Unity中使用MVC 本篇文章主要是讲一下我是如何在Unity中使用MVC模式,MVC模式肯定不能照搬进Unity中...在Unity中应用MVC模式已经讲解完了,MVC模式其实就是多种设计模式的结合体,也是三层架构的改良产品,基本原理就是把业务逻辑、功能实现、数据给分开来,利于增加功能,和维护。

2.1K30
  • iOS_单元测试三之OCMock使用

    的类方法及其子类无法存根或验证 10.7、无法验证 NSObject 上的方法 10.8、无法验证核心 Apple 类中的私有方法 10.9、运行后验证不能使用延迟 10.10、测试中使用多线程 11、...,则存根方法将持续存在,即使在测试中也是如此。...在某些情况下,可以对方法进行存根,然后对其进行验证。 当方法在子类中被覆盖时,可以使用运行后验证。...具体来说,在以 NS 或 UI 作为前缀的类中,所有带有下划线前缀和/或后缀的方法。 在某些情况下,可以对方法进行存根,然后对其进行验证。...10.9、运行后验证不能使用延迟 目前无法验证具有延迟的方法。这目前只能使用下面在严格模拟和期望中描述的expect-run-verify方法。

    3.2K20

    【单元测试】--工具与环境

    2.2 模拟和存根 在 NUnit 中,你可以使用模拟(Mocks)和存根(Stubs)来模拟外部依赖或虚拟对象的行为,以便在单元测试中隔离被测代码并确保其正常运行。...通常,你可以使用第三方库,如 Moq、NSubstitute 或 Rhino Mocks,来创建模拟和存根对象。以下是使用 Moq 作为示例的步骤: 1....在命令行中,可以运行以下命令: nuget install Moq 2. 创建存根对象: 在单元测试中,首先创建一个存根对象,它将代替真实的外部依赖。...创建被测对象: 在单元测试中,创建被测对象并将存根对象注入其中,以便在测试中使用。在上面的示例中,MyClass 接受一个 IDatabaseAccess 接口的参数,并将其注入。 4....在 .NET 中,NUnit 可以与持续集成和自动化测试一起使用。以下是一些步骤,以示例 NUnit 测试如何集成到持续集成和自动化测试流程中: 1.

    39050

    关于单元测试

    Mock类库一般情况下都是鸡肋 我在开始推动单元测试的时候就详细的研究了Rhino.Mocks类库。当时也被它强大语法能力所折服。并且实际将该类库应用在了我们项目的单元测试中。...可是,过了一段时间后,当我再次需要使用Mock对象的时候。我才发现,我自己写一个Mock对象的成本其实非常低。远低于学习Rhino.Mocks抽象的语法的成本低。...目前在项目中的组织方式是:两个平行的工程,产品工程使用InternalVisibleToAttribute为测试工程提供Internal成员的访问权限。两个工程保持相似的组织方式。...虽然我很有意识的推动单元测试,并且在实际开发中使用单元测试。但是,目前的情况,在WinForm平台下的开发中进行单元测试的桎梏还是很多。...ASP.NET MVC在一开始设计的时候就考虑了可测试性,因此,这一方面应该更好一些。但是,至少我目前没有看到微软在其他平台下的可单元测试方面的努力。这是我在使用单元测试过程中最郁闷的地方。

    78780

    ASP.NET Core MVC中如何使用Session实现身份验证

    Session即会话,是指一个用户在一段时间内对某一个站点的一次访问。 Session对象在.NET中对应HttpSessionState类,表示“会话状态”,可以保存与当前用户会话相关的信息。...Session可以保存变量,该变量只能供一个用户使用,也就是说,每一个网页浏览者都有自己的Session对象变量,即Session对象具有唯一性。 ?...二、 Session是如何工作的以及工作机制和工作流程 服务端的Session机制是基于客户端的,也就是说服务端的Session会保存每个客户端的信息到服务端内存中。...三、ASP.NET Core MVC使用Session方式来实现用户身份验证 这篇文章主要为大家详细介绍了ASP.NET Core MVC使用Session验证用户登录的相关资料,具有一定的参考价值,...1)、 Asp.Net Core中Session中间件的使用 我们需要在用户登录以后记录当前登录用户的会话状态,ASP.NET Core 已经内置发布了一个关于会话的程序包(Microsoft.Extensions.DependencyInjection

    3.9K30

    .NET周报【10月第2期 2022-10-17】

    此版本包含 GA 中包含的所有功能,并修复了 RC1 中的 80 多个问题。...本文详细介绍了Entity Framework Core 7 中的新功能:映射到 JSON 列,包括如何定义和查询 ASP.NET Core 在 .NET 7 候选版本 2 中的更新- .NET Blog.../ ASP.NET Core 上使用 Microsoft.Extensions.Configuration 在配置中进行类型化设置时,如何在“当前验证”中验证设置的信息。...SSM Parameter Store在Generic Host使用 https://zenn.dev/shimat/articles/affbb2ece0ace8 了解Generic Host应用程序如何...推特 下面是分层编译在.NET中的大致工作原理。现在猜猜我为什么向调用计数存根添加了两条额外的指令(大小回归!)并在web应用程序中h获得到这些好处?

    5.4K20

    如何实现对上下文(Context)数据的统一管理

    HttpSessionState;对于GUI应用来讲,我们则可以使用CallConext。...静态属性Current表示当前的ApplicationConext,如何当前存在HttpContext,则使用HttpConext的Session,否则使用CallConext。...现在我们来看看ApplicationContext在一个简单的Windows Form应用中的使用情况。在如右图(点击看大图)所示的一个Form中,我们可以进行Profile的设置和获取。...上面演示的是ApplicationContext在Windows Form应用中的使用,实际上在ASP.NET应用中,你依然会得到相同的结果。...针对我们ApplicationContext就意味着:在Web应用中,主线程实际上操作的是当前HttpContext的Session,而另外一个线程中则是直接使用CallConext。

    1.6K70

    彻底服了:Dubbo 夺命28问,真顶不住了

    此时,用于加速前端页面开发的 Web框架(MVC) 是关键。...而SOAP可以看着是一个重量级的协议,基于XML、SOAP在安全方面是通过使用XML-Security和XML-Signature两个规范组成了WS-Security来实现安全控制的,当前已经得到了各个厂商的支持...3、SOA 面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。...1、如何确定客户端和服务端之间的通信协议? 2、如何更高效地进行网络通信? 3、服务端提供的服务如何暴露给客户端? 4、客户端如何发现这些暴露的服务?...1、动态代理 生成Client Stub(客户端存根)和Server Stub(服务端存根)的时候需要用到Java动态代理技术,可以使用JDK提供的原生的动态代理机制,也可以使用开源的:CGLib代理,

    54610

    即使不懂单元测试,会用这个工具也够了~

    Mock 模拟 mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。 Mockito好处 无手写 : 无需自己编写模拟对象。...重构安全 : 重命名接口方法名称或重新排序参数不会破坏测试代码,因为Mocks是在运行时创建的。...注意:@Mock注释始终与@RunWith注释一起使用。 @RunWith 这是一个类级别的注释。它用于保持测试干净并改善调试。...它还会检测测试中可用的未使用的存根, 并使用@Mock注释对模拟进行初始化。 @InjectMocks 它标记应在其上执行注入的字段或参数。 @Captor 它允许创建字段级参数捕获器。...它与Mockito的verify()方法一起使用, 以获取调用方法时传递的值。 @Spy 允许创建部分模拟的对象。换句话说, 它允许将现场实例快速包装在测试对象中。

    1.7K10

    RPC基本原理_基本原理是什么意思

    此时,用于加速前端页面开发的 Web框架(MVC) 是关键。...而SOAP可以看着是一个重量级的协议,基于XML、SOAP在安全方面是通过使用XML-Security和XML-Signature两个规范组成了WS-Security来实现安全控制的,当前已经得到了各个厂商的支持...3、SOA 面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。...1、如何确定客户端和服务端之间的通信协议? 2、如何更高效地进行网络通信? 3、服务端提供的服务如何暴露给客户端? 4、客户端如何发现这些暴露的服务?...1、动态代理 生成Client Stub(客户端存根)和Server Stub(服务端存根)的时候需要用到Java动态代理技术,可以使用JDK提供的原生的动态代理机制,也可以使用开源的:CGLib代理,

    63220

    如何写出优雅的 Golang 代码

    ; 扁平的命名空间 — 无论是 Spring MVC 还是 Rails,同一个项目中命名空间非常扁平,跨文件夹使用其他文件夹中定义的类或者方法不需要引入新的包,使用其他文件定义的类时也不需要增加额外的前缀...按职责拆分 Go 语言在拆分模块时就使用了完全不同的思路,虽然 MVC 架构模式是在我们写 Web 服务时无法避开的,但是相比于横向地切分不同的层级,Go 语言的项目往往都按照职责对模块进行拆分: ?...上图中出现的两个 Database 其实是在 main 函数中初始化的数据库连接,在项目运行期间,它们可能表示同一个内存中的数据库连接 当我们使用 golangci-lint 并开启 gochecknoinits...接口 在 Go 语言中如果我们完全不使用接口,是写不出易于测试的代码的,作为静态语言的 Golang,只有我们使用接口才能脱离依赖具体实现的窘境,接口的使用能够为我们带来更清晰的抽象,帮助我们思考如何对代码进行设计...作者也一直在努力学习如何写出更加优雅的代码,写出好的代码真的不是一件容易的事情,作者也希望能通过这篇文章帮助使用 Go 语言的工程师写出更有 Golang 风格的项目。

    1.6K30

    RPC框架的实现原理,及RPC架构组件详解

    此时,用于加速前端页面开发的 Web框架(MVC) 是关键。...RPC的实现原理 高并发架构系列:RPC框架的实现原理,调用全过程,及RPC架构组件 也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间...主要是通过在客户端和服务器之间建立TCP连接,远程过程调用的所有交换的数据都在这个连接里传输。连接可以是按需连接,调用结束后就断掉,也可以是长连接,多个远程过程调用共享同一个连接。...2、服务寻址 要解决寻址的问题,也就是说,A服务器上的应用怎么告诉底层的RPC框架,如何连接到B服务器(如主机或IP地址)以及特定的端口,方法的名称名称是什么。...3.2、反序列化 当B机器接收到A机器的应用发来的请求之后,又需要对接收到的参数等信息进行反序列化操作(序列化的逆操作),即将二进制信息恢复为内存中的表达方式,然后再找到对应的方法(寻址的一部分)进行本地调用

    95610

    React 应用架构实战 0x4:模拟 API

    这一节,将试着模拟数据接口,学习如何使用 msw 库来 mock API 接口。msw 是一个很好的工具,它允许我们创建 mocked API 服务,并且这些服务的行为与真实的 API 服务一样。...我们可以像调用真实 API 一样,在浏览器的 Network 标签页中检查请求和响应。...另一个好处是由于拦截是在网络层进行的,因此我们仍然可以在浏览器开发工具的 Network 选项卡中查看请求。 # 配置 MSW 模拟的 API 在浏览器和服务器上都可以进行配置。...# 服务器 服务器版本主要用于运行自动化测试,因为我们的测试运行程序在 Node 环境而不是浏览器中运行。...现在我们可以在 src/pages/_app.tsx 文件中将其集成到我们的应用程序中。

    42130

    Rhino 7 for Mac(犀牛3D建模软件)

    介绍 在 Rhino 7 中,我们改进了演示工具,通过对 Rhino 渲染引擎的重大更新简化了工作流程,因此您可以在没有任何更改的情况下渲染您在光线追踪视口中获得的相同外观。...我们添加了对 PBR 材质、LayerBook 命令等的支持…… Rhino Refined 在 Rhino 7 中,我们修复了数百个错误,但我们还添加了工作流程改进,例如命名选择、模具制作工具、单行用于雕刻的字体...在 Rhino 7 中,某些模型在 Windows 和 Mac 上的显示速度会明显加快。...我们还对显示模式进行了一些改进,使它们在您工作时更加引人注目…… 文档 建模只是设计过程的一部分;您还需要展示如何构建屏幕上的内容。...在 Rhino 7 中,我们添加了一些新组件,但我们也更容易将您的程序变成插件......

    1.4K10

    前端发展闲聊

    bean注入到Rhino中; 把业务逻辑写到JS代码中,JS代码调用多个已注入的Java service处理业务逻辑,拼装数据返回!...好处:修改业务逻辑不需要修改Java代码,也就是不需要重新编译和部署,只需要刷新下跑在Rhino中的JS代码即可。...但是在iOS上JavaScriptCore并没有使用即时编译技术(JIT),因为在iOS中应用无权拥有可写可执行的内存页(因而无法动态生成代码),在安卓上,理论上是可以使用的。...JavaScriptCore引擎也是使用C++编写,在iOS和安卓中,JavaScriptCore都做了一层封装,可以无须关心引擎和系统桥接的那一层。...在知乎一个2011年的前端地位问题(《如何改善国内前端开发行业的尴尬地位?》)中,包括贺师俊老师都承认这种尴尬确实存在。但是,30年河东30年河西,到了2018年,前端已经成了炽手可热的岗位。

    1.3K61
    领券