乱世重典
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 155 文章- 43 评论- 797
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 系列
CHSNS#1.x版本使用说明
Asp.net Mvc Framework 系列
Ado.net Entity Framework系列
供大家学习参考,转文章随意--重典
Tag标签:
Microsoft
,
Asp.net MVC
,
.net
,
Filter
posted @ 2008-03-15 13:52
重典
阅读(1779)
评论(13)
编辑
收藏
所属分类:
Microsoft 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是有源码的,所以可以通过分析源代码获取这些属性的作用
再者只有多看文章了
公告
我的Live Messager:chsword@126.com
CHSNS#1.2开源版本
CHSNS#使用说明(更新中)
CHSNS#官网
Asp.net Mvc类库说明
CHSNS#1.x版本使用说明
Asp.net Mvc Framework 系列
Ado.net Entity Framework系列
订阅我的博客
我的最新闪存
codeplex换风格了
10-8 23:52
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
最新评论
我的标签
我参与的团队
ASP.NET AJAX (Atlas)学习(0/1352)
ASP.NET MVC团队(0/73)
我的标签
.net(30)
Asp.net MVC(29)
Microsoft(26)
CHSNS#(14)
aspnetmvc(14)
Ado.net(9)
ef(8)
MVC(7)
sql(7)
Asp.net(6)
随笔分类
(101)
Ado.net EF(9)
(rss)
Algorithm (2)
(rss)
Castle Project(4)
(rss)
CHSNS#(12)
(rss)
Microsoft MVC(40)
(rss)
Semantic Web(2)
(rss)
Web前端UI开发(13)
(rss)
成幻Online Judge(11)
(rss)
剑舞刀奈
(rss)
书画小杂(3)
(rss)
问题的累积(2)
(rss)
学校那些
(rss)
游戏开发(2)
(rss)
智能设备(1)
(rss)
随笔档案
(143)
2008年10月 (4)
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)
2007年1月 (2)
2006年12月 (11)
友情连接
dudu
(rss)
可爱的站长
Leven's Blog
(rss)
lulu Studio
(rss)
Terrylee
(rss)
TNT2(szw)
老赵
(rss)
孟哥的博客
(rss)
郁闷的翩翩(darkdawn)
最新随笔
1. Asp.net MVC视频教程 18 单选与复选框
2. Asp.net Mvc问题索引
3. Entity SQL Language六 数字函数、时间函数及其它
4. Entity SQL Language 五GroupBy、位处理函数、字符串处理函数
5. Asp.net Mvc视频教程 页面传值基础(get/post/UpdateModel)
6. Asp.net Mvc 入门视频教程(试水)
7. Entity SQL Language 四 OrderBy/部分查询结果
8. Entity SQL Language 三 Where/Exists/In/Like/参数及外键查询
9. Ado.net Entity Framework系列
10. Entity SQL Language 二 基本执行方法、操作符、Select及Where
11. Entity SQL Language 一 简介
12. EF下LINQ to Entities不支持语法及替代方案
13. Linq to Entities in Ado.net EF的事务
14. .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
15. 面向对象与形而上学
16. Json.net/Newtonsoft 3.0 新特性JObject/Linq to Json
17. Asp.net Mvc开发体会点滴 一
18. SQLite的ADO.NET Provider支持ADO.NET Entity Framework
19. Asp.net Mvc Codeplex Preview 5 源代码及MVCContrib4pv5发布
20. Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型
Google搜索
最新评论
1. re: Asp.net MVC视频教程 18 单选与复选框
重典大哥,小第看了您的视频 帮助不小 十分感激 但是有一点不明白的地方~ 将一个action跳转的另一个action 如何将一个action内的对象传给第2个action并且传给第2个action所... (MVC试用者)
2. re: CHSNS#BUG提交及问题解答
您好:请问我运行的是1.22这个版本的,但是在会员注册的右上面的退出,怎么没有啊,我找了找没找到这个文件,请教各位老师,这个文件放到哪了?谢谢! (张方超)
3. re: CHSNS#BUG提交及问题解答
to:重典 你好,我用的CHSNS_R1[1].22_CHS_0800808已经运行成功,数据库也能连上了,但现在又出现一个问题,在运行首页面时,刚开始出现“Asp.net Ajax Sys 未定义”... (YSL2)
4. re: CHSNS#BUG提交及问题解答
我正在下载VS2008,SQL2005也刚装好,暂时呢我想调一下那个学生版SNS,可是安装到数据库那里,老提示数据库错误,我想这肯定是SQL2005的问题,可是一直没有解决。能否帮忙远程解决一下。QQ... (DYJ)
5. re: CHSNS#BUG提交及问题解答
@DYJ
除Web外,其它的工程组合起来就是后台
2005不知道是否能正常打开
(重典)
阅读排行榜
1. System.Web.Routing入门及进阶 上篇(11454)
2. Asp.net Mvc开发体会点滴 一(11143)
3. System.Web.Routing入门及进阶 下篇(10630)
4. Asp.net Mvc Codeplex Preview 5 源代码及MVCContrib4pv5发布(10299)
5. Asp.net Mvc Codeplex Preview 5 第一篇 Helper的新特性(10190)
评论排行榜
1. Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型(51)
2. Asp.net Mvc 入门视频教程(试水)(48)
3. Asp.net Mvc Framework 九 (View与Controller交互)(35)
4. Asp.net Mvc Framework 八 (Helper)(28)
5. Asp.net Mvc开发体会点滴 一(28)
60天内阅读排行
1. System.Web.Routing入门及进阶 上篇(11454)
2. Asp.net Mvc开发体会点滴 一(11143)
3. System.Web.Routing入门及进阶 下篇(10630)
4. Asp.net Mvc Codeplex Preview 5 源代码及MVCContrib4pv5发布(10299)
5. Asp.net Mvc Codeplex Preview 5 第一篇 Helper的新特性(10190)