首页 > 其他分享 >【单元测试的艺术】第一章 单元测试基础

【单元测试的艺术】第一章 单元测试基础

时间:2023-06-08 16:47:08浏览次数:36  
标签:艺术 定义 代码 单元测试 第一章 测试 编写 单元

1.1 逐步定义单元测试

维基百科对于单元测试的传统定义:

定义1.0:一个单元测试是一段代码(通常是一个方法),这段代码调用另一段代码,然后检验某些假设的正确性。如果这些假设是错误的,单元测试就失败了。一个单元可以是一个方法或函数。

被测试系统(System Under Test, SUT):写代码测试的对象

作者观点:单元代表系统中的功能单元或者一个用例。既可以小到只包含一个方法,也可以大到包括实现某个功能的多个类和函数。

定义1.1:一个单元测试是一段代码,这段代码调用一个工作单元,并检验一个工作单元的一个具体的最终结果。如果关于这个最终结果的假设是错误的,单元测试就失败了。一个单元测试的范围可以小到一个方法,大到多个类。

1.2 优秀单元测试的特性

  • 用自动化测试框架编写
  • 容易编写
  • 运行快速

1.3 集成测试

定义:集成测试是对一个工作单元进行的测试,这个测试对被测试的工作单元没有完全的控制,并使用该单元的一个或多个真实依赖物,例如时间、网络、数据库、线程或随机数产生器等。

对比:

  • 集成测试使用真实依赖物
  • 单元测试将测试单元与其他依赖物隔离开,保证单元测试结果高度稳定

非自动化集成测试的缺点:

  • 结果不稳定,无法保证长时间以后再次执行仍然能得到结果,可能破坏了功能而毫不知情

定义:遗留代码在维基百科中定义为“与一个不再受支持或继续生产的操作系统,或其他计算机技术相关的源代码”,但是很多公司把任何比当前维护的应用更老旧的版本都称为遗留代码。这个词经常用来指代那些难以使用,难以测试,通常也更难以阅读的代码。

1.4 什么是优秀的单元测试

单元测试定义更新:

定义最终更新1.2: 一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。单元测试几乎都是用单元测试框架编写的。单元测试容易编写,能快速运行。单元测试可靠、可读,并且可维护。只要产品代码不发生变化,单元测试的结果是稳定的。

1.5 范例

1.6 测试驱动开发

Test-Driven Development, TDD:测试驱动开发

流程:

  1. 编写一个会失败的测试,以证明产品中代码或功能的缺失
  2. 编写符合测试预期的产品代码,使测试通过
  3. 重构代码:编写下一个单元测试、进行重构等

标签:艺术,定义,代码,单元测试,第一章,测试,编写,单元
From: https://www.cnblogs.com/hsjia/p/17466763.html

相关文章

  • 第一章:计算机系统概论--第一轮
    教材说明:计算机组成原理(白中英),第六版,目前只是在复习阶段重做要求过的题目,第一行是我的答案,红色是没写的答案;另:附有思维导图课后习题:1.比较电子数字计算机和电子模拟计算机的特点解:电子数字计算机是按位运算的,并且不连续地跳动计算;用数字0和1表示数据,采用数字计数的计算方式,程序......
  • 【20230607】【用Python让Excel飞起来】 第一章 python 快速上手 I
    001安装Anacondaanaconda.com直接下载,然后安装记得安装的时候将path和link.py点上,不然回头去配置环境变量有一些麻烦如何判断成功安装在CMD中输入conda-V即可查看002安装配置pycharm直接安装即可,官网下载,然后安装注意pycharm的pro版本是收费的,edu邮箱可以免费1年......
  • AI绘画MidJourney 酷炫艺术风格效果,总有一款你喜欢
    文/高扬 今天六一儿童节,祝各位大朋友节日快乐。 这次以儿童为主题,看看MidJourney的绘画风格,在这里,我使用的默认V5.1版本。 图画场景是一个男孩和一个女孩在田野玩耍,对应的英文是:Aboyandagirlareplayinginthefield。 先欣赏MidJourney默认生成的图片效果。......
  • 第一章 JavaEE应用和开发环境
    1.1javaEE应用概述1、javaEE的分层模型数据库--【提供持久化服务】--》DomainObject层--【封装】--〉DAO层--【提供数据访问服务】--》业务逻辑层--【提供业务逻辑实现】--〉MVC的控制器层--【显示】--》前端优点:松耦合2、JavaEE应用的组件1)前端组件:主要负责收集用户......
  • 第一章 初识C语言-第一节(C语言固定程序;全局变量和局部变量)
    c语言主函数固定程序#include<stdio.h>intmain(){return0;}全局变量和和局部变量全局变量定义在程序块前,局部变量定义在程序块中。intnum1=0; //num1是全局变量,其使用域可在整个程序块intmain(){{intnum2=2; //num2是局部变量,其使用于域在当前程序块}printf("%d\n",,num2);......
  • 每日记录(数据结构 第一章 绪论)
    这些天准备学一下数据结构,面对越来越多的问题都需要使用设计一些算法,所以从网上摘抄总结的数据结构有关的知识 数据(data)是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素(dataelement)是数据的基本单位,在计算机程......
  • Midjourney劲敌来了! 谷歌StyleDrop王牌「定制大师」引爆AI艺术圈
    前言 Midjourney强敌来了!谷歌定制大师StyleDrop,将一张图片作为参考,不论多复杂的艺术风格都能复刻。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署......
  • 【单元测试】Spring Data JPA + H2 测试DAO层
    1.环境配置Springboot2.7.8h22.1.2142.POM文件引入springbootparentpom点击查看代码<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.8</version......
  • 第一章 Web MVC简介
    WebMVC简介1.1、Web开发中的请求-响应模型: 在Web世界里,具体步骤如下:1、 Web浏览器(如IE)发起请求,如访问http://sishuok.com2、 Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下),最后产生响应(一般为html)。3、web服务器处理完成后,返回内容给web客户端(一般就是我......
  • 曲线艺术编程 coding curves 第三章 弧,圆,椭圆(ARCS, CIRCLES, ELLIPSES)
    第三章弧,圆,椭圆(TRIGCURVES)原作:KeithPetershttps://www.bit-101.com/blog/2022/11/coding-curves/译者:池中物王二狗(sheldon)blog:http://cnblogs.com/willian/源码:github:https://github.com/willian12345/coding-curves曲线艺术编程系列第三章在这一篇中我......