概述

  ASP.NET MVC 框架已被设计成易于建立自动测试,并易于采用诸如测试驱动开发(TDD)等的开发方法学。ASP.NET MVC 为自动化测试提供了一个理想平台。

  从广义上讲,当今的 Web 应用程序开发者注重于两种自动化测试:

    第一种是单元测试,这是以与应用程序其他部分相隔离的方式,制定并检验单个类行为(或其他小型代码单元)的方法。

    第二种是集成测试,这是指定并检验多个组件,乃至包括整个 Web 应用程序,协同工作行为的方法。

  单元测试便于创建和运行,当你在算法、业务逻辑获取其他后端基础结构上工作时,单元测试是十分精确的。

  集成测试的价值在于它可以模拟用户与 UI 的交互,并可以覆盖应用程序所使用的整个技术堆栈,包括 Web 服务器和数据库。集成测试更便于在旧的特性中侦测新的 Bug,这称为“回归测试”。

3.4.1 理解单元测试

  在 .NET 世界中,你可以在 Visual Studio 解决方案 中 创建一个独立的测试项目,以容纳各个测试套件。

  项目的创建:第一次添加一个单元测试时会创建这个项目,或者在使用 “Internet 应用程序” 模板创建 MVC 项目时,由模板自动地建立测试项目。

  一个测试套件是一个 C# 类,它定义了一组测试方法:每个方法对应于希望检验的一种行为。

  一个测试项目可以包含多个这样的测试套件类。

 形成单元测试狂热:

  能够执行单元测试是使用 MVC 框架开发的好处之一,但它未必适合所有人。 (如果以前还没用过单元测试,建议不妨试一试,看看它是如何工作的)

  笔者喜欢单元测试,并将其用于自己的项目,但并非如你想象的那样会用于所有项目。—— 笔者倾向于为那些难以编写的以及那些可能在部署中称为缺陷源的功能和特性,才会编写单元测试。

  在这些情况下,单元测试有助于对所需的最好实现构建一些思想。

  笔者发现,只需对测试有所考虑,便可以摒弃一些可能有潜在问题的思想 —— 在着手处理实际缺陷和瑕疵之前,就已经杜绝了这些不良思想。

  也就是说,单元测试是一种工具,而不是教条。—— 只有自己才知道要做多少测试 和进行哪种测试。

3.4 自动测试初步《精通ASP.NET MVC 5》的更多相关文章

  1. 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引

    索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目(1)搭建MVC环境 注册区域 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目(2)创建 ...

  2. 精通ASP.Net MVC 3 框架(第三版)学习笔记

    精通ASP.Net MVC 3 框架(第三版)学习笔记 代码才是王道. http://pan.baidu.com/s/1pJyL1cn

  3. Artech的MVC4框架学习——第一章初步认识ASP.NET MVC

    前言: Artech觉得掌握ASP.NET MVC具有三个层次. 第一层了解基本的编程模式,掌握Controller和View的定义方式,知道路由如何注册以及验证规则如何定义. 第二个层次要求我们对A ...

  4. 第 4 章—— C# 语言特性(《精通 ASP.NET MVC 5》)

    这里只提供各个特性的简单概括. C# 的完整指南可参阅<Introducing Visual C#>.深度了解 LINQ 可参考<Pro LINQ in C#> 4.1 准备示 ...

  5. 【开源分享:入门到精通ASP.NET MVC+EF6+Bootstrap】从这里开始,一起搭框架(1)开篇介绍

    框架简介 这几年一直在做ASP.NET开发,几年前做项目都是老老实实一行行的写代码,后来发现那些高手基本都会有自己积累起来的代码库,现在称之为开发框架,基础代码不用再去堆,主要精力可以集中在业务逻辑实 ...

  6. 精通 ASP.NET MVC 4 学习笔记(一)

    这里记录着从 P132 到 P192 的内容.水分很足,大部分是书上的代码,我只加了一些基于我自己的理解的能帮助初学者看懂的注释,并且把书中的部分内容做了一些的拓展. 建立数据层 设置 DI 容器 / ...

  7. 3.3 建立松耦合组件(MVC 模式最重要的特性之一是它支持、关注“分离”)《精通 ASP.NET MVC 5》 推荐指数:8 星半

    笔者通常希望应用程序中的组件尽可能独立,而只有很少几个可控的依赖项.—— 在理想情况下,每个组件都不了解其他组件,而只是通过抽象接口来处理应用程序的其他区域.这称为松耦合 .—— 它能够使应用程序更易 ...

  8. 使用整体模型模板辅助器 Using Whole-Model Templated Helpers 模板辅助器方法 精通ASP.NET MVC 5

    怎么会

  9. Creating Form Elements --Using BeginForm and EndForm 使用内建的Form辅助器方法 精通ASP.NET MVC 5

    Using the BeginForm and EndForm Helper Methods in the CreatePerson.cshtml File

随机推荐

  1. Excel坐标自动在AutoCad绘图_1

    众所周知,Excel对数据处理的功能非常强大,它可以进行数据处理.统计分析已经辅助决策的操作,该软件已经渗透到各个领域.作为一个测绘人,GISer, 也经常利用excel完成一些测量表格的自动化计算, ...

  2. Hibernate的load和get方法的区别

    这次我们聊一下Hibernate3.2 Session加载数据时get和load方法的区别,我总结的如下: 1. 对于get方法,hibernate会确认一下该id对应的数据是否存在,首先在sessi ...

  3. Hadoop Mapreduce中wordcount 过程解析

    将文件split 文件1:                                                                   分割结果: hello  world   ...

  4. 解决SVN提交和更新代码冲突?

    解决冲突有三种选择: 1.放弃自己的更新,使用svn revert(回滚),然后提交.在这种方式下不需要使用svn resolved(解决) 2.放弃自己的更新,使用别人的更新.使用最新获取的版本覆盖 ...

  5. vue打包app嵌入h5,区分app进入和android,ios显示不同的下载链接

    vue打包app嵌入h5,区分app进入和android,ios显示不同的下载链接 需求:自己app打开的登录页面不显示app下载链接.其他地方打开判断android手机的跳转到android下载页链 ...

  6. vue的三种通信方式

    一 确定组件关系二 使用第一步确定的组件关系在下面找到使用方法 1 父子通信(子组件使用父组件数据渲染) a) 在 子组件 中添加props props: [自定义prop名字] b) 在子组件中把自 ...

  7. 简易轮播图、内含定时器。熟练JS操作

    HTML部分: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF ...

  8. Docker+Teamcity+Maven+SVN搭建持续集成环境

    这是使用Jenkins作为CI/CD工具,Teamcity的作用是相同的.

  9. HashMap的hash原理

    public static void main(String[] args) { String[] keyArray = {"Terra", "Jonas", ...

  10. OLTP和OLAP的区别

    OLTP和OLAP的区别 联机事务处理OLTP(on-line transaction processing) 主要是执行基本日常的事务处理,比如数据库记录的增删查改.比如在银行的一笔交易记录,就是一 ...