摘要: 在ASP.NET MVC项目的Controller中存在逻辑代码,也需要单元测试。查阅到的资料上,有说ASP.NET MVC框架在设计时便考虑到了满足可测试性,所以相对aspx、Winform来说针对MVC的单元测试要更容易。 一 基本使用 原来对Controller的单元测试的并不像此前自己想的那 阅读全文
posted @ 2017-06-04 22:20 zhixin9001 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 开始动手做这个项目时,发现无法做到完全的先设计、再编码,于是决定分模块进行,从管理员模块开始设计、编码,而且接口就已经改了好几次了。 管理员模块涉及的功能有登录和后台对管理员的维护,其中也涉及前端的开发。UI模板使用Inspinia,感觉这套模板功能丰富、界面美观,而且基于HTML5和BootStr 阅读全文
posted @ 2017-06-03 22:35 zhixin9001 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 在项目中需要对DAL层进行单元测试,如果直接操作数据库,首先测试速度会大大下降,而且让单元测试直接使用外部依赖,很可能带来后续维护的不便,所以有必要对数据库隔离,然后单独测试DAL层。由于使用了ORM框架EF,就从EF入手。按照单元测试的思路,这是便在DAL层与EF之间找到或制造接缝,并从接缝处开始 阅读全文
posted @ 2017-06-01 22:04 zhixin9001 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 前不久刚刚通过租房网站的开发学习了MVC,并随后学习了单元测试相关的基础,现在开始健身网站的开发,该项目将结合MVC与单元测试,在开发实践过程中,趁热打铁,巩固并运用之前的内容。 一 健身网站功能描述 关于健身网站的需求,主要从个人日常锻炼的需要出发,以达到辅助锻炼的目的。各应用商店中健身相关的AP 阅读全文
posted @ 2017-05-30 22:09 zhixin9001 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 之前学习了单元测试的基础知识,以及桩对象和模拟对象的不同作用。但在实际应用中,往往不会直接手写桩对象或者模拟对象,而是使用隔离框架动态的创建这些对象,这可以让测试变得更简便、快捷,还可以更好地应对复杂的测试。这里学习的便是隔离框架的一种——Nsubstitute。 一 开始使用NSubstitute 阅读全文
posted @ 2017-05-27 22:07 zhixin9001 阅读(1739) 评论(0) 推荐(0) 编辑
摘要: 前面使用了桩对象来解除被测代码对外部的依赖,以便于独立地测试代码的内部逻辑。但桩对象只能测试系统的返回值或者状态的改变,如果要测试对象之间的交互,则需要使用模拟对象。 1 三种测试类型 a) 三种类型的测试分别为: Value-based testing测试方法的返回值 State-based te 阅读全文
posted @ 2017-05-25 22:12 zhixin9001 阅读(731) 评论(0) 推荐(0) 编辑
摘要: 在单元测试时,难免会碰到一些外部依赖,外部依赖是指在系统中代码与其交互的对象,而且无法对其做人为控制,比如文件系统、线程、内存、时间、数据库结果集等,这时可以使用伪对象(fake)来替代外部依赖,桩对象(stub)便是其中之一 一 桩对象 a) 桩对象是对系统中现有依赖项的一个替代品,可人为控制。通 阅读全文
posted @ 2017-05-23 21:59 zhixin9001 阅读(1407) 评论(0) 推荐(1) 编辑
摘要: 单元测试作为提高代码和软件质量的有效途径,其重要性和益处自不必多说,虽然我没有实践过TDD之类,但坚信单元测试的积极作用。作为一种开发方法,单元测试早在上世纪70年代就已经在Smalltalk语言被运用了,这么多年来,单元测试一次又一次证明了自身的价值,在各种开发方式此起彼伏的浪潮中,经受住了时间的 阅读全文
posted @ 2017-05-21 22:21 zhixin9001 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用、发邮件,并将通过UEditor上传的图片保存到云存储。在项目的最后,再学习优化网站性能的一些技术:缓存和页面静态化。 使用缓存可以降低数据库的压力,而使用页面静态化则可以降低Web服务器的压力。 一 缓存 ASP.N 阅读全文
posted @ 2017-05-20 21:38 zhixin9001 阅读(374) 评论(2) 推荐(0) 编辑
摘要: 学习MVC之租房网站(十一)-定时任务和云存储 在上一篇<学习MVC之租房网站(十)-预约和跟单>完成了用户的预约看房以及后台操作员对预约看房的跟单操作。接下来会做定时发邮件的功能,并且用云存储进行上传图片的保存。 一 定时任务和邮件发送 a) 通过实现定时发邮件这个功能,在学习Quartz.Net 阅读全文
posted @ 2017-05-18 22:54 zhixin9001 阅读(250) 评论(0) 推荐(0) 编辑