重典的博客
实践推动发展
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 208 文章- 45 评论- 2024
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 系列
供大家学习参考,转文章随意--重典
分享到人人
标签:
Microsoft
,
Asp.net MVC
,
.net
,
Filter
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted @ 2008-03-15 13:52
重典
阅读(3191)
评论(14)
编辑
收藏
发表评论
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新闻
:
·
初创企业能从Linux学习些什么
·
Facebook单帖回复数超百万创吉尼斯世界纪录
·
春节后礼品回收iPhone成新宠燕窝被冷落
·
分析称苹果近1000亿现金储备最佳用途是派息
·
扎克伯格11件蠢事:曾同意将Facebook卖给雅虎
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
公告
MVP Profile
CHSNS#1.2 Open Source
CHSNS# Eice.com.cn
Asp.net Mvc Framework 系列
Email:chsword@126.com
昵称:
重典
园龄:
5年
荣誉:
推荐博客
粉丝:
408
关注:
25
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
更多链接
最新随笔
1. Windows Phone Developer Tools HRESULT: 0x89721800错误的解决方法
2. 按Solution获取已经引用的NuGet的Package
3. PowerShell 远程连接与其它技巧
4. PowerShell 语法
5. PowerShell命令
6. PowerShell 简介
7. 发布自己的NuGet程序
8. 建立自己的NuGet服务器
9. NuGet安装及简单使用
10. 使用 MvcMiniProfiler 监控EF 4.1 with MySQL Provider
我的标签
Asp.net MVC(55)
aspnetmvc(33)
.net(32)
Microsoft(27)
MVC(19)
CHSNS#(15)
ef(11)
Asp.net(10)
Ado.net(9)
sql(7)
随笔分类
(179)
Algorithm (4)
(rss)
ASP.NET MVC(78)
(rss)
Castle Project(4)
(rss)
CHSNS#(13)
(rss)
Entity Framework(15)
(rss)
Html 5(14)
(rss)
Practice(5)
(rss)
Semantic Web(2)
(rss)
Silverlight(2)
(rss)
Tools(6)
(rss)
windows(9)
(rss)
Windows Phone & XNA(3)
(rss)
成幻Online Judge(CHOJ#)(12)
(rss)
问题的累积(3)
(rss)
杂文杂事(8)
(rss)
智能设备(1)
(rss)
随笔档案
(201)
2011年12月 (2)
2011年10月 (4)
2011年9月 (3)
2011年8月 (2)
2011年4月 (2)
2010年12月 (4)
2010年11月 (1)
2010年10月 (1)
2010年8月 (2)
2010年7月 (2)
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月 (2)
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)
最新评论
阅读排行榜
评论排行榜
推荐排行榜