概述

  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. Windows中的原语与原子

    目前对原语与原子的理解为: 原语: 由内核提供的核外调用的一段具有特定功能的方法或者函数称之为---原语 原语操作不允许发生中断. 原子:         在多进程多线程的操作系统中不允许其他进程或者 ...

  2. Oracle免安装绿色版-PLSQL连接报12154

    在环境变量添加 TNS_ADMIN  值是你的免安装客户端中sqlnet.ora   tnsnames.ora 所在的目录 参考地址:https://blog.csdn.net/feng_na/art ...

  3. 什么是DevOps

    历史回顾 为了能够更好的理解什么是DevOps,我们很有必要对当时还只有程序员(此前还没有派生出开发者,前台工程师,后台工程师之类)这个称号存在的历史进行一下回顾. 如编程之道中所言: 老一辈的程序员 ...

  4. 宝塔安装swoole

    新建文件夹 mkdir swoole 切入到文件夹中,进行下载安装包 wget http://pecl.php.net/get/swoole-4.3.2.tgz 解压 tar -zxvf swoole ...

  5. .NET平台常用的开发组件(csdn)

    .NET平台常用的开发组件 原创 2017年02月24日 09:20:04 工欲善其事,必先利其器.学习.NET也10年有余,其优雅的编程风格,高效率的开发速度,极度简单的可扩展性,足够强大开发类库, ...

  6. 关于Python的协程问题总结

    协程其实就是可以由程序自主控制的线程 在python里主要由yield 和yield from 控制,可以通过生成者消费者例子来理解协程 利用yield from 向生成器(协程)传送数据# 传统的生 ...

  7. appium+python3+pycharm踩得坑2

    没相当刚把上一个错误解决,这个马上就解决了: selenium.common.exceptions.WebDriverException: Message: A new session could n ...

  8. Flutter 输入控件TextField设置内容并保持光标(cursor)在末尾

    TextField( controller: TextEditingController.fromValue(TextEditingValue( // 设置内容 text: inputText, // ...

  9. php 随机红包算法

    <?php /** * 红包分配算法 * * example * $coupon = new Coupon(200, 5); * $res = $coupon->handle(); * p ...

  10. 算法(第四版)C# 习题题解——3.1

    写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 查找更方便的版本见:https ...