asp.net mvc3 对HttPost来的表单使用moq进行单元测试


以下对HttpPost来的表单进行处理的方法进行单元测试。


以下为方法的源代码

	[HttpPost]
        public ActionResult NewName()
        {
            ViewBag.Name = Request.Form["Name"];
            return View();
        }

在提交来的View里有一个@Html.Editor("Name")的元素


下面是单元测试代码,使用moq进行模拟对象

	[TestMethod()]
        public void NewNameTest()
        {
	    // 1,准备Form,每个项要一一地进行列举
            FormCollection form = new FormCollection();
            form["Name"] = "zhong";

	    // 2,mock Request对象
            var mockRequest = new Mock<HttpRequestBase>();            
            mockRequest.SetupGet(m => m.Form).Returns(form);	// 调用Request中Form的getter时,返回我们准备的form

	    // 3,mock HttpContext对象
            var mockContext = new Mock<HttpContextBase>();
            mockContext.SetupGet(m => m.Request).Returns(mockRequest.Object);  // 调用HttpContext中Request时,返回模拟的Request对象
  

	    // 4,实例化Controller对象
            HomeController target = new HomeController();
            target.ControllerContext = new ControllerContext(mockContext.Object, new RouteData(), target); // 将模拟HttpContext对象传给Controller
            
            // 5,执行要测试的方法
            ViewResult actual;
            actual = target.NewName() as ViewResult;

	    // 6,断言测试
            Assert.AreEqual("zhong", actual.ViewBag.Name);

        }




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值