• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[翻译]ASP.NETMVCTip#3–在单元测试时提供明确的视图名字

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

http://weblogs.asp.net/stephenwalther/archive/2008/06/17/asp-net-mvc-tip-3-provide-explicit-view-names-when-unit-testing.aspx

摘要:在这个Tip中,Stephen Walther解释了当控制器action需要返回一个特定的视图时,应该如何进行单元测试。他建议你如果打算建立单元测试的话,还是要明确地指出视图的名称。

ASP.NET MVC框架是一个高度可测试的框架。你可以很方便地测试MVC控制器Action,确定它是否能够返回你所期望的结果。在这个Tip中,我会向你展示如何测试一个会返回特定视图的控制器action。

考虑清单1中名为HomeController的MVC控制器。该控制器包含一个名为Index()的action。Index() action返回一个视图。然而,这里并没有提供视图的名字。视图的名字是通过控制器action的名字推断出来的。因此,当你到用Index() action时,会返回名为Index的视图。

HomeController还包含另外一个名为Index2()的action。这个action也返回一个视图。然而,这个action明确地指出了视图的名字。视图的名字被传递到View()方法中。该控制器action和第一个控制器action做的事情是相同的。然而,第一个控制器action的视图名字是推断出来的,而第二个控制器action的视图名字是明确指定的。

清单1 - HomeController.cs

 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4using System.Web;
 5using System.Web.Mvc;
 6 
 7namespace Tip3.Controllers
 8}

如果你计划为ASP.NET MVC应用程序创建单元测试,则你必需明确指定视图的名字。否则,即便返回了正确的视图,也无法通过单元测试。

清单2的测试类中包含了两个测试方法。第一个方法测试了HomeController的Index() action,第二个方法测试了Index2()。第一个测试总是失败,而第二个测试则能成功(参见图1)。

清单2 - HomeControllerTest.cs

 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4using System.Text;
 5using System.Web.Mvc;
 6using Microsoft.VisualStudio.TestTools.UnitTesting;
 7using Tip3;
 8using Tip3.Controllers;
 9 
10namespace Tip3Tests.Controllers
11}

单元测试无法推断视图名字。我的建议是,如果打算进行单元测试,应该总是明确指定视图的名字。

此处下载源代码:http://weblogs.asp.net/blogs/stephenwalther/Downloads/Tip3/Tip3.zip

------

广告:欢迎光临[.NET正则表达式库] http://regex-lib.net/


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap