asp.net – 如何单元测试使用HostingEnvironment.MapPath的代码
发布时间:2020-12-16 00:32:05 所属栏目:asp.Net 来源:网络整理
导读:我有一些使用HostingEnvironment.MapPath的代码,我想进行单元测试。 如何设置HostingEnvironment,以便在我的单元测试(mstest)项目中返回一个路径,而不是空值? 解决方法 为什么在ASP.NET MVC应用程序中有一个依赖于HostingEnvironment.MapPath的代码,您
我有一些使用HostingEnvironment.MapPath的代码,我想进行单元测试。
如何设置HostingEnvironment,以便在我的单元测试(mstest)项目中返回一个路径,而不是空值? 解决方法
为什么在ASP.NET MVC应用程序中有一个依赖于HostingEnvironment.MapPath的代码,您可以访问像HttpServerUtilityBase这样的对象,这样可以实现这一点,哪些可以容易地被嘲笑和单元测试?
让我们举个例子:一个使用我们要单元测试的抽象服务器类的控制器动作: public class HomeController : Controller { public ActionResult Index() { var file = Server.MapPath("~/App_Data/foo.txt"); return View((object)file); } } 现在,有很多方法来单元测试这个控制器的动作。我个人喜欢使用MVcContrib.TestHelper。 但是让我们看看我们如何使用一个嘲弄的框架来开箱即可。这个例子我使用Rhino Mocks: [TestMethod] public void Index_Action_Should_Calculate_And_Pass_The_Physical_Path_Of_Foo_As_View_Model() { // arrange var sut = new HomeController(); var server = MockRepository.GeneratePartialMock<HttpServerUtilityBase>(); var context = MockRepository.GeneratePartialMock<HttpContextBase>(); context.Expect(x => x.Server).Return(server); var expected = @"c:workApp_Datafoo.txt"; server.Expect(x => x.MapPath("~/App_Data/foo.txt")).Return(expected); var requestContext = new RequestContext(context,new RouteData()); sut.ControllerContext = new ControllerContext(requestContext,sut); // act var actual = sut.Index(); // assert var viewResult = actual as ViewResult; Assert.AreEqual(viewResult.Model,expected); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 是否有使用Markdown作为编辑器的WIKI(最好是.NE
- asp.net – 带有WebForms和WebApi的Thinktecture IdentityS
- asp.net – Vs html
- asp.net-mvc – 程序集使用System.Web.Http 5.1,它比引用的
- asp.net – GridView:选择页面按钮(数字)样式
- asp.net-mvc – MVC DropDownListFor和StringLength属性不能
- ASP.NET验证器对齐问题
- 找出ASP.NET WebForms中控件的生命周期的哪个阶段
- 在ASP.Net网站上实现自定义错误页面
- asp.net – 找出合适的工作语言:从C#分支出来
推荐文章
站长推荐
- asp.net-mvc – 如何防止在DataBase First Model
- Asp.net配合easyui实现返回json数据实例
- asp.net-core-signalr – 在ClientSide上获取Sig
- asp.net-mvc-2 – 如何在局部视图中获取与父操作
- asp.net – 使用AutoGenerateColumns = true操作
- asp.net – 在GridView问题中的ImageButton上的P
- MVC学习二:基础语法
- asp.net-web-api – WebApi:如何将状态从过滤器
- 在ASP.NET中下载文件的实现代码
- asp.net – 无法从HRESULT加载文件或程序集异常:
热点阅读