重典的博客
实践推动发展
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 197 文章- 44 评论- 1480
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
posted @ 2008-03-15 13:52
重典
阅读(2231)
评论(14)
编辑
收藏
网摘
所属分类:
ASP.NET MVC
发表评论
回复
引用
查看
#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 |
完美冰蓝
看你的视频,呵呵!
原来想要跟上时代真的是很难啊!
刷新评论
切换模板
发表评论
昵称:
[登录]
[注册]
主页:
邮箱:
(仅博主可见)
验证码:
看不清,换一个
评论内容:
登录
注册
[使用Ctrl+Enter键快速提交评论]
0
1106884
导航:
网站首页
社区
新闻
博问
闪存
网摘
招聘
找找看
Google搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关文章:
最新IT新闻:
预测:Twitter最可能收购的十家公司
网易澄清:与暴雪合资公司仅提供技术支持
杰克逊悼念仪式或成史上最大规模Web活动
《商业周刊》:Mozilla的志愿者开发模式被复制
Mono 的Virtual PC 虚拟机
相关链接:
公告
个人信息>>
Expand↓
MVP/GDI
MVP Profile
CHSNS#1.2 Open Source
CHSNS# Eice.com.cn
Asp.net Mvc Framework 系列
Email/MSN:chsword@126.com
page to Other Lanaguage
twitter
follow me on Twitter
订阅我的博客>>
Expand↓
XML/RSS
FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
最新评论
我的标签
我参与的团队
ASP.NET AJAX (Atlas)学习(0/0)
MVP(微软最有价值专家)团队(0/0)
ASP.NET MVC团队(0/0)
我的标签
Asp.net MVC(49)
aspnetmvc(33)
.net(32)
Microsoft(26)
MVC(18)
CHSNS#(15)
Asp.net(9)
Ado.net(9)
ef(8)
sql(7)
随笔分类
(140)
Ado.net Entity Framework(9)
(rss)
Algorithm (4)
(rss)
ASP.NET MVC(66)
(rss)
Castle Project(4)
(rss)
CHSNS#(13)
(rss)
Semantic Web(2)
(rss)
Silverlight(1)
(rss)
Web前端UI开发(13)
(rss)
windows7(2)
(rss)
成幻Online Judge(CHOJ#)(12)
(rss)
模式、重构、实践(4)
(rss)
问题的累积(2)
(rss)
游戏开发(2)
(rss)
杂文杂事(5)
(rss)
智能设备(1)
(rss)
随笔档案
(170)
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月 (6)
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. ASP.NET MVC 1.1 _VS2010 & ASP.NET MVC 2 新特性
2. CHOJ# 在线编译及评判系统(OnlineJudge)2.0 Beta2
3. ASP.NET MVC雕虫小技 3、Pager
4. ASP.NET MVC雕虫小技 1-2
5. ASP.NET MVC 重点教程一周年版 总结:ASP.NET MVC模型
6. ASP.NET MVC 重点教程一周年版 第十一回 母版页、用户自定义控件及文件上传
7. 使用Unity 实现 AOP
8. ASP.NET MVC 重点教程一周年版 第十回 请求Controller
9. ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper
10. 无缝缓存读取简化:仅Lambda表达式传递委托
11. 无缝的缓存读取:双存储缓存策略
12. ASP.NET MVC 重点教程一周年版 第八回 Helper之演化
13. 用ASP.NET MVC自己管理自己的View:ASP.NET MVC File Management
14. 尝试在博客中嵌入SL
15. ASP.NET MVC 重点教程一周年版 第七回 UrlHelper
16. ASP.NET MVC 重点教程一周年版 第六回 过滤器Filter
17. ASP.NET MVC 重点教程一周年版 第五回 ActionResult的其它返回值
18. ASP.NET MVC 重点教程一周年版 第四回 向View传值
19. ASP.NET MVC 重点教程一周年版 第三回 Controller与View
20. ASP.NET MVC 重点教程一周年版 第二回 UrlRouting
最新评论
1. re: 微软也走先使用后收费的路子--创业企业扶植计划(Microsoft BizSpark™)
为什么要用"也"呢 (keLai)
2. re: CHSNS#BUG提交及问题解答
厉害,厉害..... (天羽)
3. re: ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper
有html.checkbox的详细用法吗? (jagx526)
4. re: ASP.NET MVC雕虫小技 3、Pager
@fs
引入 using System.Web.Mvc.Html; (三金)
5. re: ASP.NET MVC 重点教程一周年版 第七回 UrlHelper
@xcccb-------------看了下面这句话 你就明白<%=Url.Action("Index","Home") %> 和<%=Htm... (ruruya)
阅读排行榜
1. ASP.NET MVC Framework 系列(22776)
2. Asp.net Mvc 入门视频教程(试水)(18923)
3. System.Web.Routing入门及进阶 上篇(15639)
4. Asp.net Mvc开发体会点滴 一(14262)
5. Ado.net Entity Framework系列(13608)
评论排行榜
1. Asp.net Mvc 入门视频教程(试水)(72)
2. Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型(55)
3. CHSNS#BUG提交及问题解答(44)
4. ASP.NET MVC RC 2 发布(39)
5. 无缝的缓存读取:双存储缓存策略(38)
60天内阅读排行
1. ASP.NET MVC雕虫小技 1-2(2857)
2. ASP.NET MVC雕虫小技 3、Pager(2311)
3. ASP.NET MVC 1.1 _VS2010 & ASP.NET MVC 2 新特性(2125)
4. CHOJ# 在线编译及评判系统(OnlineJudge)2.0 Beta2(1172)
5. Silverlight小试验1(315)