鉴于HttpApplicationHttpContext没有实现接口,如何在asp.net中对HttpModule进行单元测试?

===============>>#1 票数:2

本质上,您需要删除HttpModule对HttpApplication和HttpContext的依赖,并用一个接口替换它们。 您可以创建自己的IHttpApplication和IHttpContext(以及IHttpResonse,IHttpRequest等),也可以使用@Dale Ragan提到的内容,也可以使用与ASP.NET MVC预览捆绑在一起的System.Web.Abstractions中的闪亮内容。

===============>>#2 票数:1

过去,在迁移到ASP.NET MVC之前,我使用了Phil Haack创建的该库用于单元测试, 该库使用了HttpApplication和HttpContext。 反过来,它使用了Duck Typing库

不幸的是,这是最好的方法。 ASP.NET并非易于测试。 当他们研究ASP.NET MVC时,目标之一是通过使框架更具可测试性来摆脱这些麻烦。

===============>>#3 票数:0

您可以使用隔离(模拟)框架。 我知道有两种工具可以使您伪造/模拟任何.NET对象-Typemock隔离器Telerik JustMock,我认为您也可以使用Moles

以上所有内容使您可以伪造任何.NET对象事件,如果该对象未实现接口,甚至没有公共控件。

  ask by Chris Porter translate from so

未解决问题?本站智能推荐:

1回复

模拟当前登录的用户进行单元测试[重复]

这个问题已经在这里有了答案: 单元测试 4回答 时HttpContext.Current为null 我需要模拟当前登录的用户以测试以下功能。 此函数从数据库的“用户”表返回当前登录用户的ID。 (System.Web.HttpContext.Current
1回复

使用Mock IDbSet对实体框架进行单元测试

我以前从来没有真正做过单元测试,而且我在第一次测试时偶然发现并绊倒了。 问题是_repository.Golfers.Count(); 始终表示DbSet为空。 我的测试很简单,我只想添加一个新的高尔夫球手 我使用Entity Framework和代码优先构建了一个数据模型。
3回复

如何对调用Action的HTML Helper进行单元测试?

我有一个HTML Helper,用于基本CMS系统,该系统调用特定内容对象的控制器和操作。 减少的例子如下: 我怎样才能对此进行单元测试? 我可以创建一个HtmlHelper,并模拟它的某些方面(例如ViewBag)来测试返回字符串的HTML帮助程序(例如)。 对于上面的例
5回复

单元测试Web App时如何模拟应用程序路径

我正在测试MVC HTML帮助程序中的代码,在尝试获取应用程序路径时会抛出错误: 引发的异常是 System.Web.HttpException:应用程序相对虚拟路径'〜/ Views / directory / subdirectory / fileName.cshtml'不
1回复

WHERE语句在使用It.IsAny的单元测试中不起作用

我对存储库的单元测试有一些问题,尤其是方法FindBy() 实体是IDbSet<T> Entities = _context.Set<T>(); 我正在尝试在控制器中测试该方法,但是我总是在houses得到NULL 。 您能给我些建议吗? 这是我
1回复

用Rhino Mock进行测试会引发错误

您好,我是TDD的初学者,并且使用RhinoMocks在应用程序中创建最小起订量。 我正在尝试实施MVP模式。 这是我的界面 和我的主持人班 下面是我的测试课 执行测试时,我收到此错误: 任何帮助将不胜感激。 编辑:注意我从此链接获得帮助。 除
1回复

尝试使用外键测试课程

我使用本教程来模拟我的项目并能够对其进行测试。 但是我对具有外键的类有问题。 因为我有一个条件来验证ID是否存在。 像这个: 这是我的检查方法: 这是我的测试课: OBS:我已经在发布收益之前尝试过此方法: 那么我的代码有什么问题呢? 编辑1
1回复

值不能为空。 参数名称:测试模拟时的来源

嗨,我在MVC核心2.1中使用带有模拟功能的NUnit测试。当测试构建我的测试在调试测试中失败时,出现以下错误。 值不能为空。 参数名称:System.Linq.Enumerable.ToList [TSource]处的源(IEnumerable`1源) 此类测试单元mvc
3回复

单元测试SqlFunctions

我有一个公开IQueryable的存储库,一个服务处理特定的查询,这里有一些使用DbFunctions的方法。 为了进行测试,我创建了一个带有静态元素列表的假存储库,并将其注入服务中。 问题是,由于我的服务查询一个List而不使用数据库,因此出现错误“此函数只能从LINQ到Entities调
1回复

当现有代码相当不灵活时,引入单元测试代码

这是有关我的开发环境的信息: MongoDB 3.0.0 MongoDB C#驱动程序版本1.7.0.4714 Microsoft Visual Studio专业版2013 .NET Framework 4.0 我们将要发布第一个产品版本。 我们使用域驱动设计方法