概述

  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. postgresql 自定义函数

    CREATE OR REPLACE FUNCTION "public"."pm25_aqi"("pm25_nd" numeric) RETU ...

  2. 小白のjava实现wc.exe功能

    GitHub地址 项目完成情况 基本功能列表(已实现) wc.exe -c file.c     //返回文件 file.c 的字符数 wc.exe -w file.c    //返回文件 file. ...

  3. jsp页面在Android系统和ISO系统的兼容性问题

    问题:一个jsp页面在Android手机上显示正常,但到了ISO系统上jsp页面的样式不显示了. 原因:css文件中设置样式时单位不兼容. 解决方案:将rem 转换成px;

  4. iis相关概念和操作

    iis相关 iis是什么?      它是互联网信息服务的缩写,是网页服务组件(即多种服务器集成) iis为什么存在,作用是什么?      方便于网络上发布信息. 如何使用等等? 1)打开win7的 ...

  5. P2598 [ZJOI2009]狼和羊的故事(网络流)

    P2598 [ZJOI2009]狼和羊的故事 源点和所有狼连 $inf$ 的边 所有羊和汇点连 $inf$ 的边 所有点向四周连 $1$ 的边 这样所有狼和羊之间的边都被割掉了 统计最小割就好辣 #i ...

  6. Linux 链路聚合

    Linux 链路聚合 链路聚合与双网卡绑定几乎相同,可以实现多网卡绑定主从荣誉,负载均衡,提高网络访问流量.但链路聚合与双网卡绑定技术(bond)不同点就在于,双网卡绑定只能使用两个网卡绑定,而链路聚 ...

  7. 自制操作系统Antz(8)——实现内核 (中) 扩展内核

    Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html 在前几天的任务中,我们已经简单实现了MBR,直接操作显示器和硬盘操作 ...

  8. Overture如何更改音符符尾设置

    Overture作为一款专业的五线谱打谱软件,深受每一个音乐爱好者喜爱.在我们使用Overture来进行打谱操作时,往往会遇到下面这种情况:我们一般打上两个八分音符时,软件会自动符尾相连,但当我们连续 ...

  9. 使用Java SDK实现离线签名

    严格来说,tx-signer并不属于SDK,它是bytomd中构建交易.对交易签名两大模块的java实现版.因此,若想用tx-signer对交易进行离线签名,需要由你在本地保管好自己的私钥. 如果你的 ...

  10. 错误模块“AspNetCoreModuleV2"解决

    如图 HTTP 错误 500.21 - Internal Server Error 处理程序"aspNetCore"在其模块列表中有一个错误模块"AspNetCoreMo ...