首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用MOLES的ASP .net单元测试控制器

使用MOLES的ASP .net单元测试控制器
EN

Stack Overflow用户
提问于 2011-06-03 17:01:04
回答 1查看 356关注 0票数 1

如何使用moles框架对包含HttpConext的控制器进行单元测试?我的控制器代码是

代码语言:javascript
运行
复制
public ActionResult Index()
        {
             MyRepositoryClass myRepo = new MyRepositoryClass (System.Web.HttpContext.Current);
             string fs = ipser.GetCityName();
             return View();
        }

My code for the controller in unit test project is
public class MyClassTest
{

   [TestMethod]
   [HostType("Moles")]
    public void Index_Test()
    {
         string originalViewName="Index";
         MyController myContl = new MyController ();
         var result =myContl.Index() as ViewResult;
         Assert.IsNotNull(result, "Should return a view");
         Assert.AreEqual(originalViewName, result.ViewName, "View name should have been {0}", originalViewName);
    }

我应该如何使用moles框架测试我的控制器?

EN

回答 1

Stack Overflow用户

发布于 2011-08-13 19:42:44

简单的答案是不要使用Moles,而是删除对静态HttpContext对象的依赖。

如果你使用HttpContextBase (在.NET 4.0的System.Web.Abstractions中)而不是HttpContext,你将能够在你的单元测试中提供一个假的HttpContext。您需要在您的MVC应用程序中使用IoC容器,并确保在配置IoC容器时将HttpContextWrapper(HttpContext.Current)映射到HttpContextBase。

网上有很多关于如何做到这一点的信息。只需在谷歌上搜索HttpContextBase,HttpContextWrapper和MVC,我相信你会找到大量的示例代码和解释来帮助你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6225010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档