MVC Unit Testing学习笔记
MVC Unit Testing

参考文档:
1.http://www.asp.net/mvc/overview/testing
2.http://www.asp.net/mvc/tutorials/older-versions/nerddinner/enable-automated-unit-testing
1 Walkthrouth:Using TDD with ASP.NET MVC
参考文档: gg416511(VS.98).aspx
1.1 Use VS Unit Testing framework
参考文档: dd410597(v=vs.98).aspx
2 TDD测试原则
- 每个测试方法对应一个特定要求
- 不应验证数据库或者其他组件
- 测试方法名称应当具有说明性
3 编码
3.1 Assert用法
参考文档: microsoft.visualstudio.testtools.unittesting.assert.aspx
4 参考资料
4.1 Using Mocks And Tests To Design Role-Based Objects
参考文档: dd882516.aspx
4.2 Building Testable ASP.NET MVC Applications
参考文档: dd942838.aspx
4.3 Enable Automated Unit Testing
参考文档: enable-automated-unit-testing
5 工具
也请参考: Mock Framework.
5.1 Nunit
- 下载地址:http://www.nunit.org/
5.2 Ninject
6 一些概念
6.1 TDD
- Test-Driven Development
- 是敏捷开发中的一项核心实践和技术,也是一种设计方法论。 TDD的原理是在开发功能代码之前,先编写单元测试用例代码, 测试代码确定需要编写什么产品代码。
6.2 IoC
- 也请参考: DI
- 控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机 程序的耦合问题。控制反转还有一个名字叫做依赖注入(Dependency Injection)。简称DI。
6.3 DI
- Dependency Injection
6.4 Mock Framework.
- 参考文档: 1947414.html 这里详细说明了各种Mock
6.4.1 Rhino Mocks
6.4.2 Moq
- 是利用诸如Linq表达式树和Lambda表达式等为.NET设计和开发的Mocking库
6.4.3 Typemock
6.4.4 Moles
6.5 NuGet
- NuGet 是免费、开源的包管理开发工具
7 常见问题
7.1 1.加载config
参考文档: arwutang
8 Learning Goals
8.1 2.如何使用
8.1.1 2.1 测试view
a.检查视图存在
参考文档: making-sure-a-view-exists
b.Unit test MVC views using Razor Generator
参考文档: unit-test-your-mvc-views-using-razor.html
c.关于视图的单元测试
参考文档: 1396718.html(老赵的文章)
8.1.2 2.2 测试Routes
参考文档: testing-routes-in-asp.net-mvc.aspx
8.1.3 Controller
unit test controller that uses Forms Authentication
参考文档: how-can-i-unit-test-my-asp-net-mvc-controller-that-uses-formsauthentication
8.1.4 Test Action Filter
参考文档: how-to-test-action-filters-in-asp-net-mvc
8.1.5 Controller Context
参考文档: mocking-asp-net-mvc-controller-context
8.1.6 custom Authorize filters
参考文档: aspnet-mvc-testing-a-custom-authorize-filters
8.2 2.1 基本开发流程
a.创建测试类 [TestClass]
b.初始化法方法 [TestInitialize]
c,测试方法 [TestMethod]
d.测试方法中使用断言 Assert class
8.3 3.需要注意那些问题
也请参考: TDD测试原则
思维导图源文件下载:Mvc Unit Testing(请使用MindManager打开)
MVC Unit Testing学习笔记的更多相关文章
- MVC缓存OutPutCache学习笔记 (二) 缓存及时化VaryByCustom
<MVC缓存OutPutCache学习笔记 (一) 参数配置> 本篇来介绍如何使用 VaryByCustom参数来实现缓存的及时化.. 根据数据改变来及时使客户端缓存过期并更新.. 首先更 ...
- MVC缓存OutPutCache学习笔记 (一) 参数配置
OutPutCache 参数详解 Duration : 缓存时间,以秒为单位,这个除非你的Location=None,可以不添加此属性,其余时候都是必须的. Location : 缓存放置的位置; 该 ...
- ASP.NET MVC Web API 学习笔记---第一个Web API程序
http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...
- ASP.Net MVC开发基础学习笔记:一、走向MVC模式
一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...
- ASP.Net MVC开发基础学习笔记(1):走向MVC模式
一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...
- ASP.NET MVC 5 系列 学习笔记 目录 (持续更新...)
前言: 记得当初培训的时候,学习的还是ASP.NET,现在回想一下,图片水印.统计人数.过滤器....HttpHandler是多么的经典! 不过后来接触到了MVC,便立马爱上了它.Model-View ...
- 【jqGrid for ASP.NET MVC Documentation】.学习笔记.2.jqGrid Model-View-Controller 分离
1 基本 分离代码 和 描述 ,在ASP.NET MVC 应用程序中是非常重要的.因此,jqGrid 的 mvc 模式使用一个共同的网格安装设置,包括 Model ,Controller 和 View ...
- ASP.NET Core MVC的基础学习笔记
最近由于“武汉肺炎”疫情在家办公,也没闲着,最近学习了一下asp.net core mvc的一些网页开发的的基础知识,话不多说直接上教程! 一.创建Web应用程序 1)创建新项目--->找到 “ ...
- ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法
一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归. ...
随机推荐
- 【leetcode】com/problems/surrounded-regions/
dfs 栈溢出,bfs超时,用dfs非递归就不溢出了,前后写了1一个星期class node { int i; int j; public node(int i1,int j1) { i=i1; j= ...
- Delphi 对象的创建(create)与释放(free/destory)
Delphi 对象的创建(create)与释放(free/destory) 1.Create参数为:nil/self/application的区别,最好能看到实际效果的区别 例如: My := TMy ...
- weekend110(Hadoop)的 第六天笔记
(2015年1月25日) 课程目录 01-复习ha相关 02-hive的元数据库mysql方式安装配置 03-hive的使用 04-hive的常用语法 05-hql语法及自定义函数 06-hbase表 ...
- iframe 中嵌套刷新
if(top.frames.length>0){top.location.href = window.location.href;}
- ArrStack——数组栈(procedure)
//数组栈,对于无法预料栈的长度情况下,可能会因为原分配数组不够长而导致数据溢出,或因为数组太长而浪费空间.但是操作快,不需要额外的操作.而链表与此想法,可以动态分配内存,但是要增加额外的操作. #i ...
- 一个表的两个列连接另外一个表的一个列SQL语句怎么写
f619424517 | 浏览 2207 次 推荐于2016-09-09 11:38:18 最佳答案 select a.flightid,a.flightname,b.cityname,c.c ...
- Linux命令 — 设置或查看网络配置命令ifconfig
ifconfig命令用于设置或查看网络配置,包括IP地址.网络掩码.广播地址等.它是linux系统中,使用频率最高的关于网络方面的命令. 1. 命令介绍 命令格式: ifconfig [interfa ...
- 【转】PHP获取当前时间、时间戳的各种格式写法汇总[日期时间]
今天写下php中,如何通过各种方法 获取当前系统时间.时间戳,并备注各种格式的含义,可灵活变通.1.获取当前时间方法date()很简单,这就是获取时间的方法,格式为:date($format, $ti ...
- zoj 3657 策略题 easy
http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=4880 由于是要去牡丹江.是浙大出题,所以找了份浙大的题,第一道水题做的就不顺 ...
- 廖雪锋笔记2:list,tuble
list:元素值不固定,元素类型不固定 apend(xx) insert(INDEX,xx) pop(index) 索引元素: [0] [1] [2] [-1] [-2] LIST,TUBLE变量值是 ...