重典的博客
实践推动发展
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 206 文章- 45 评论- 1573
Asp.net Mvc Framework 十(测试方法及Filter的示例)
示例下载:
http://files.cnblogs.com/chsword/MyTestMvc.rar
顺遍说一下建立测试的方法
本身Asp.netMvc是提供有测试功能的
在新建Asp.netMVCApplication时,点击确定,会跳出一个Create Project Test的询问
如果选Yes就自动建立一个 "工程名+Test"的测试工程
测试工程要引用Rhino.Mock(最新版本3.4)这一开源项目(下载地址
http://www.ayende.com/projects/rhino-mocks/downloads.aspx
)
测试代码没有什么好说的了,看了示例自然了解,Scott的
MockHelpers
使测试更加方便
可以利用类似以下代码进行测试
[TestMethod]
public
void
Index()
{
HomeController home
=
new
HomeController();
var viewengin
=
new
FakeViewEngine();
home.ViewEngine
=
viewengin;
MockRepository mock
=
new
MockRepository();
using
(mock.Record())
{
mock.SetFakeControllerContext(home);
}
using
(mock.Playback())
{
home.Index();
Assert.AreEqual(
"
Index
"
, viewengin.ViewContext.ViewName);
}
}
示例说明
示例中有个登录功能
有两个页面
/Post/Index页面只有登录后才能查看
/Post/Post页面只有登录后的admin用户才能查看
否则就会Error
在验证登录时我写了一个扩展方法
public
static
class
ControllerExtension
{
public
static
bool
IsPost(
this
Controller controller)
{
return
controller.Request.Form.Count
>
0
;
}
}
登录时我使用Session来保存用户登录信息
所有用户信息我在 Global中进行初始化
RegisterRoutes(RouteTable.Routes);
//
将Application代替数据库用
Application[
"
Posts
"
]
=
new
List
<
Post
>
();
//
一个账号集合
Application[
"
Accounts
"
]
=
new
List
<
Account
>
();
//
一个帖子集合
//
初始化两个账号
List
<
Account
>
la
=
Application[
"
Accounts
"
]
as
List
<
Account
>
;
la.Add(
new
Account()
//
这个是管理员
{
Username
=
"
admin
"
,
Password
=
"
admin
"
}
);
la.Add(
new
Account()
//
这个是普通用户
{
Username
=
"
user
"
,
Password
=
"
user
"
}
);
具体的内容看代码就行了,感冒了...很是难受...手纸用了三卷了....(
乱世重典
)
Asp.net Mvc Framework 系列
Asp.net Mvc Framework 系列
Ado.net Entity Framework系列
供大家学习参考,转文章随意--重典
Tag标签:
Microsoft
,
Asp.net MVC
,
.net
,
Filter
0
0
0
(请您对文章做出评价)
«
上一篇:
Asp.net Mvc Framework 九 (View与Controller交互)
»
下一篇:
Asp.net Mvc Framework 十一 (自定义Helper在MVC中的使用)
posted @ 2008-03-15 13:52
重典
阅读(2482)
评论(14)
编辑
收藏
所属分类:
ASP.NET MVC
发表评论
1427018
回复
引用
查看
#1楼
[
楼主
]2008-03-15 15:41 |
重典
沉睡了一觉...太难受了
回复
引用
查看
#2楼
2008-03-16 16:42 |
隨風.NET
注意身体啊
回复
引用
查看
#3楼
[
楼主
]2008-03-16 19:11 |
重典
@隨風.NET
谢谢关心
回复
引用
查看
#4楼
2008-07-27 19:21 |
孤独客
public static class ControllerExtension
{
public static bool IsPost(this Controller controller) {
return controller.Request.Form.Count > 0;
}
}
弱弱的问一下:这里的“this Controller controller”中this是什么缘由,以前都没见过这中写法。:)
回复
引用
查看
#5楼
[
楼主
]2008-07-27 20:19 |
重典
@孤独客
C#3.0新特性 叫扩展方法,可以百度一下
回复
引用
查看
#6楼
2008-07-27 20:31 |
孤独客
@重典
3q3q
回复
引用
查看
#7楼
[
楼主
]2008-07-27 21:51 |
重典
@孤独客
no 3q
回复
引用
查看
#8楼
2008-07-28 11:36 |
孤独客
这些天在网上看了关于.net mvc 框架的资料,很多都是在讲整体框架的使用,没有关于具体方法的讲解,比如,我发现Controller类里有很多方法调用都不清楚,知其然,不知其所以然。在VS2008的MSDN里也找不到相应的帮助文档,请问下怎样才能获得相关的资料,哪里有。
谢谢。
回复
引用
查看
#9楼
[
楼主
]2008-07-28 11:56 |
重典
@孤独客
其实代码并没有太难,只是可能是知识储备的问题。
1要了解设计模式的知识,MVC中大量使用了观察者等模式,所以设计模式不明白是看不明白其代码的
再者我觉得 mvc 源于monorial而功能monorail r2以后效仿 ROR多一些,所以原理性的东西读些ROR的基础知识应该是有好处的
Agile编程之类的最好也看一下
如果有具体的代码不明白可以问我
回复
引用
查看
#10楼
2008-07-28 15:35 |
孤独客
@重典
比如Controller类里的属性和方法(如ControllerContext等)的用法和涵义不是黑清楚。而且帮助里也找不到相关的说明,有时候只能靠猜。-_-
比如说“return controller.Request.Form.Count > 0”,这里的Request和传统的webform里的又有些不同。这里的Request是基于Controller.Request
而传统的ASP.net里的Request是基于Page.Request的。至于他们之间是否还有其他地方有着不相同的地方,我找不到相关的帮助文档来解惑。
总的来说,就是对MVC架构里出现的新的方法和属性(ControllerContext,FilterExecutingContext等)还没找到渠道去搞懂,MSDN里找不到相关的介绍。你是怎么获得这方面的介绍的,支个招。
可能有点弱,嘿嘿,谢谢。
回复
引用
查看
#11楼
2008-07-28 15:54 |
孤独客
比如在“ BindingHelperExtensions.UpdateFrom(a, Request.Form);”中,我大概可以猜测到该函数的作用,但不能获得关于这个函数的详细说明信息,不知道是不是因为我用的VS2008的问题。
有点困惑。
回复
引用
查看
#12楼
[
楼主
]2008-07-28 16:35 |
重典
@孤独客
没有问题,智能感智时,没有对函数的具体解释,这是因为这还不是最终版本,如是写全注释文档的话费时费力,我想因为开发团队没有写全
回复
引用
查看
#13楼
[
楼主
]2008-07-28 16:37 |
重典
@孤独客
因为MVC是有源码的,所以可以通过分析源代码获取这些属性的作用
再者只有多看文章了
回复
引用
查看
#14楼
2009-01-09 16:55 |
完美冰蓝
看你的视频,呵呵!
原来想要跟上时代真的是很难啊!
注册用户登录后才能发表评论,请
登录
或
注册
。
博客园首页
IT新闻
闪存
知识库
招聘
找优秀程序员,就在博客园
IT新闻
:
·
惠普关怀计划被指侮辱用户:问题电脑不在计划中
·
俄罗斯反垄断机构批准甲骨文收购Sun交易
·
揭秘苹果iPad开发者保密政策:房间窗户必须遮盖
·
66岁柳传志挑战新极限:多极化联想进军金融业
·
支付宝总裁或因保守被调离
每天10分钟,轻松学英语
专题:
Android
iPad
jQuery
Windows 7
推荐职位
:
网站导航:
博客园首页
IT新闻
个人主页
闪存
程序员招聘
社区
博问
网摘
China-pub 计算机图书网上专卖店!6.5万品种2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关搜索:
Microsoft
Asp.net MVC
.net
Filter
ASP.NET MVC
在知识库中查看:
Asp.net Mvc Framework 十(测试方法及Filter的示例)
公告
MVP Profile
CHSNS#1.2 Open Source
CHSNS# Eice.com.cn
Asp.net Mvc Framework 系列
Email/MSN:chsword@126.com
page to Other Lanaguage
我的主页
个人资料
我的闪存
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
最新评论
我的标签
我参与的团队
ASP.NET AJAX (Atlas)学习(0/0)
MVP(微软最有价值专家)团队(0/0)
ASP.NET MVC团队(0/0)
黑龙江.NET俱乐部(0/0)
我的标签
Asp.net MVC(49)
aspnetmvc(33)
.net(32)
Microsoft(27)
MVC(18)
CHSNS#(15)
Asp.net(9)
Ado.net(9)
ef(8)
sql(7)
随笔分类
(149)
Ado.net Entity Framework(9)
(rss)
Algorithm (4)
(rss)
ASP.NET MVC(68)
(rss)
Castle Project(4)
(rss)
CHSNS#(13)
(rss)
Semantic Web(2)
(rss)
Silverlight(2)
(rss)
Web前端UI开发(14)
(rss)
windows7(5)
(rss)
成幻Online Judge(CHOJ#)(12)
(rss)
模式、重构、实践(4)
(rss)
问题的累积(2)
(rss)
游戏开发(2)
(rss)
杂文杂事(7)
(rss)
智能设备(1)
(rss)
随笔档案
(179)
2010年3月 (2)
2010年2月 (1)
2010年1月 (1)
2009年12月 (3)
2009年11月 (1)
2009年10月 (1)
2009年9月 (1)
2009年6月 (2)
2009年5月 (4)
2009年4月 (6)
2009年3月 (12)
2009年2月 (4)
2009年1月 (3)
2008年12月 (3)
2008年11月 (4)
2008年10月 (5)
2008年9月 (15)
2008年8月 (20)
2008年7月 (8)
2008年6月 (2)
2008年4月 (5)
2008年3月 (16)
2008年2月 (4)
2008年1月 (4)
2007年12月 (4)
2007年11月 (2)
2007年10月 (3)
2007年9月 (4)
2007年8月 (8)
2007年7月 (3)
2007年6月 (2)
2007年5月 (1)
2007年3月 (12)
2007年2月 (13)
友情连接
Anytao
(rss)
dudu
(rss)
可爱的站长
Leven's Blog
(rss)
lulu Studio
(rss)
Terrylee
(rss)
TNT2(szw)
海龙的博客
(rss)
自强不息
老f--紫色永恒
(rss)
老赵
(rss)
孟哥的博客
(rss)
郁闷的翩翩(darkdawn)
最新随笔
1. Visual Studio 2010 RC 下安装ASP.NET MVC 2.0 RTM
2. Microsoft Ajax CDN与Google Ajax CDN 你来试试哪个快
3. 使用PowerShell 自动从SVN服务器获取最新版本并编译解决方案(TortoiseSVN)
4. Windows 7中打不开光盘的解决方案之一
5. 问题贴
6. 如何获取视频网站的信息(土豆例子)
7. ASP.NET MVC 2.0 in Vs2010 :使用C# 4.0中使用动态类型来传递ViewData
8. Silverlight 保持图片原始大小
9. VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
10. 无法打开登录所请求的数据库DbName 。登录失败。 用户 'IIS APPPOOL\DefaultAppPool' 登录失败。 的解决方案
11. ASP.NET MVC 1.1 _VS2010 & ASP.NET MVC 2 新特性
最新评论
1. Re:ASP.NET MVC 重点教程一周年版 第十一回 母版页、用户自定义控件及文件上传
@snow123 有可能是 你 from 框 被 嵌套了。 (撞破南墙)
2. Re:Visual Studio 2010 RC 下安装ASP.NET MVC 2.0 RTM
@沉默杨仔 VS2010 RC的安装包内 \WCU\ASPNETMVC (重典)
3. Re:Visual Studio 2010 RC 下安装ASP.NET MVC 2.0 RTM
aSP.NET MVC 2 – Visual Studio 2010 Tools 这个刚才不小心删除。现在怎么装上? (沉默杨仔)
4. Re:ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper
[quote]xcccb:呵呵..解决了.改成下面这样的写法就可以了. <br/> <br/> ViewData["sel1"] = new SelectL... (撞破南墙)
5. Re:Asp.net Mvc 入门视频教程(试水)
楼主,我想下载啊~~~~~ (lgz)
阅读排行榜
1. ASP.NET MVC Framework 系列(47951)
2. Asp.net Mvc 入门视频教程(试水)(28898)
3. System.Web.Routing入门及进阶 上篇(19549)
4. Ado.net Entity Framework系列(17754)
5. System.Web.Routing入门及进阶 下篇(15654)
评论排行榜
1. Asp.net Mvc 入门视频教程(试水)(76)
2. Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型(55)
3. CHSNS#BUG提交及问题解答(46)
4. ASP.NET MVC RC 2 发布(40)
5. 无缝的缓存读取:双存储缓存策略(38)
60天内阅读排行
1. Microsoft Ajax CDN与Google Ajax CDN 你来试试哪个快(1555)
2. 使用PowerShell 自动从SVN服务器获取最新版本并编译解决方案(TortoiseSVN)(324)
3. Visual Studio 2010 RC 下安装ASP.NET MVC 2.0 RTM(232)