乱世重典
所谓侠者,就是夹起尾巴做人
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 134 文章- 42 评论- 446
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 系列
XNA游戏开发
供大家学习参考,转文章随意--重典
Tag标签:
Microsoft
,
Asp.net MVC
,
.net
,
Filter
posted @ 2008-03-15 13:52
重典
阅读(1617)
评论(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是有源码的,所以可以通过分析源代码获取这些属性的作用
再者只有多看文章了
公告
CHSNS#1.2开源版本
CHSNS#使用说明(更新中)
CHSNS#官网
Asp.net Mvc Framework 系列
Asp.net Mvc类库说明
订阅
与我联系
发短消息
我的标签
.net(30)
Microsoft(26)
Asp.net MVC(23)
CHSNS#(14)
aspnetmvc(8)
MVC(7)
Asp.net(6)
Helper(4)
url(3)
Facebook(3)
随笔分类
(82)
Algorithm (2)
(rss)
Castle Project(4)
(rss)
CHSNS#(12)
(rss)
Microsoft MVC(32)
(rss)
Semantic Web(1)
(rss)
vb Develop
(rss)
Web前端UI开发(13)
(rss)
成幻Online Judge(11)
(rss)
剑舞刀奈
(rss)
书画小杂(3)
(rss)
问题的累积(2)
(rss)
学校那些
(rss)
游戏开发(2)
(rss)
随笔档案
(129)
2008年8月 (19)
2008年7月 (9)
2008年6月 (2)
2008年4月 (5)
2008年3月 (16)
2008年2月 (4)
2008年1月 (4)
2007年12月 (4)
2007年11月 (2)
2007年10月 (4)
2007年9月 (4)
2007年8月 (8)
2007年7月 (3)
2007年6月 (2)
2007年5月 (1)
2007年4月 (3)
2007年3月 (13)
2007年2月 (13)
2007年1月 (2)
2006年12月 (11)
友情连接
Leven's Blog
(rss)
lulu Studio
(rss)
最新随笔
1. Asp.net Mvc Codeplex Preview 5 第二篇 Controller&Filter的新特性
2. Asp.net Mvc Codeplex Preview 5 第一篇 Helper的新特性
3. System.Web.Routing入门及进阶 下篇
4. System.Web.Routing入门及进阶 上篇
5. System.Web.Routing 的说明文档
6. Microsoft.Web.Mvc Assembly 说明
7. NVelocity View Engine with Asp.net Mvc
8. System.Web.Abstractions中的装饰者模式,及其在Asp.net Mvc中的应用
9. Asp.net MVC各个类的说明(Preview 4)
10. 校内网API的.net版本XiaoNei.Net 1.0(非官方)
11. 使用MvcContrib的FormHelper
12. Asp.net Mvc Framework在.net 2.0/IIS6下运行,程序示例
13. CHSNS#发布V1.21版
14. Asp.net Mvc Framework可以在Controller中使用的Url.Action方法
15. Asp.net Mvc Framework在.net 2.0/IIS6下运行,补全
16. XNA游戏开发
17. XNA 做一个水果机的游戏
18. CHSNS#1.x安装
19. CHSNS#1.x 源代码包说明
20. CHSNS#1.x版本使用说明
积分与排名
积分 - 121045
排名 - 316
最新评论
1. re: Asp.net Mvc Codeplex Preview 5 第二篇 Controller&Filter的新特性
@<∩扫地僧∩>
阿弥陀佛 (重典)
2. re: Asp.net Mvc Codeplex Preview 5 第二篇 Controller&Filter的新特性
我喜欢看重典的文章哈哈! (<∩扫地僧∩>)
3. re: Asp.net Mvc Codeplex Preview 5 第一篇 Helper的新特性
@勇敢的兽
夸奖了。。。 (重典)
4. re: Asp.net Mvc Codeplex Preview 5 第一篇 Helper的新特性
敢情叫这个名字的都是神仙级的大大嗦... (勇敢的兽)
5. re: Asp.net Mvc Codeplex Preview 5 第一篇 Helper的新特性
@勇敢的兽
同名而已并非数据库的邹大,呵呵 (重典)