Asp.net MVC 单元测试 简要笔记】的更多相关文章

首先要啰嗦几句. 单元测试是TDD的重要实践方法,也是代码质量的一种保证手段.在项目的工程化开发中,研发人员应该尽量保证书写Unit Test,即使不使用TDD. (VS中,我们可以直接使用微软提供的一套单元测试框架,一般使用足够了,特别需求的话,可以使用其他更好的框架.) 书写单元测试时,我们并不一定真的要去连接数据库,毕竟就算只使用自己计算机上的研发数据库,也不能保证数据正确性和完备性,毕竟自己经常会操作些垃圾数据. 这个时候就需要模拟一个“数据库”来构造我们想要的一些数据.这个就是Mock…
一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP.Net MVC. ASP.Net WebForm等高级封装的框架,简化开发,他们的底层仍然是HttpHandler.HttpRequest等 例如:ASP.NET MVC的核心类仍然是实现了IHttpHandler接口的MVCHandler 2,ASP.NET WebForm和ASP.NET MVC…
Routing在ASP.NET MVC中是非常核心的技术,属于ASP.NET MVC几大核心技术之一,在使用Routing之前,得先引入System.Web.Routing,但其实不用这么麻烦,因为在创建ASP.NET MVC项目时,编译器已经自动添加该引入了. 首先来看看Routing有什么能力使得它是ASP.NET MVC的几大技术之一,即Routing的两大作用: 1.在客户端浏览器将URL提交到服务器后,先经过Routing,Routing把URL(如:http://localhost:…
这里记录着从 P132 到 P192 的内容.水分很足,大部分是书上的代码,我只加了一些基于我自己的理解的能帮助初学者看懂的注释,并且把书中的部分内容做了一些的拓展. 建立数据层 设置 DI 容器 /// <summary> /// 设置 DI 容器 /// </summary> /// <seealso cref="System.Web.Mvc.DefaultControllerFactory" /> public class NinjectCon…
对于大部分复杂的项目来说,可能不会在Models文件夹中放置你的模型.一般来说,最好的方法是将你的领域模型放在独立的项目中.这样其他应用程序可以在使用该项目而不必依赖于你的MVC应用程序.我们建议你只把表现的关注点放置在Web应用程序项目上. 任何在应用程序启动时发生的动作都应该存在于单独的类中.并且仅在Application_Start方法中按照正确的顺序调用.…
1.1.0 创建数据层 1.1.1 CZBK.ItcastOA.IDAL 引用 CZBK.ItcastOA.Model 1.2.1 给IDAL添加一个接口IUserInfoDal 里面写增删改查分页的接口方法 public interface IUserInfoDal { //查 IQueryable<UserInfo> LoadEntities(System.Linq.Expressions.Expression<Func<UserInfo,bool>> whereL…
1.过滤器的两个特征 1.他是一种特性,可以引用到控制器类和Action方法上.比如下图 这里控制器类和action方法都引用了过滤器,这个过滤器是用来做授权的 2.特征继承自FilterAttribute 所以只要继承了FilterAttribute,就可以实现自定义的过滤器 2.MVC框架的典型过滤器 Authorize  授权过滤器 HandlerError  错误处理过滤器 OutputCache  输出缓存过滤器 1.授权过滤器 共三种用法 第一种用法=>基于登录用户的授权,是直接在控…
1.1.1 开始写业务,先写业务的实现再写业务的接口 业务类中也是有写增删改查公用的方法 引用Model,IDAL,DALFactory BLL添加两个类 UserInfoService,BaseService,并让UserInfoService继承BaseService 1.2.1 业务层要调用DBSession,所以要把DBSession给new出来 每一个业务子类都要通过DBSession来调用具体的数据操作类,如果把DBSession创建在每个业务子类中就存在重复性了,所以放在基类里面…
1.1.1  抽象工厂封装数据操作类实例创建,然后DBSession调用抽象工厂,修改DBSession CZBK.ItcastOA.DALFactory数据会话层调数据层不能直接new,要封装一下解耦 1.2.1 CZBK.ItcastOA.DALFactory 新增抽象工厂类  AbstractFactory 1.2.2 Web.config中配置一下配置信息(数据层的程序集和命名空间) <!--配置程序集名称和命名空间名称--> <add key="AssemblyPat…
1.1.1 EF线程唯一 在数据层中用到了EF的实例,在数据会话层也用到了,所以在一个请求中只能创建一个EF实例(线程内唯一对象),把它封装成工厂类 1.1.2 为了防止相互引用,循环引用,所以这个工厂类要写在数据层DAL DAL新增类 DBContextFactory /// <summary> /// 负责创建EF数据操作上下文实例,必须保证线程内唯一 /// </summary> public class DBContextFactory { public static Db…