关键词:
认识单元测试
对于单元测试框架,它主要完成以下三件事:
1.提供用例组织与执行
为什么要考虑到测试用例的组织问题呢?这是因为当我们的测试用例多达成百上千条时,这就产生了一些很严重的问题——测试用例的维护性问题以及扩展管理性问题等,而单元测试框架就是用来解决用例的规范与组织问题。
2.提供丰富的比较方法
说到比较方法,先简单描述一下什么是软件Bug——通俗讲Bug就是实际结果与预期结果之间的差异,而预期结果来源于需求,因此可以概括成与需求不符即Bug。因此无论是功能测试还是单元测试,都需要将实际结果与预期结果进行比较(断言),以此来判断该条测试用例是否执行通过。单元测试框架提供了丰富的断言方法,例如,判断 == or != 、in or not in 、True or False 等。
3.提供丰富的日志
当用例执行失败时能抛出清晰的失败原因,当所有用例执行完成后能提供丰富的执行结果。例如,总执行时间、失败用例数、成功用例数等。
一、认识unittest
什么是单元测试?单元测试负责对最小的软件设计单元(模块)进行验证——通过一段代码去验证另一段代码,它使用软件设计文档中对模块的描述作为指南,对重要的程序分支进行测试以发现模块中的错误。最小的模块,不同领域有不同的理解,像C里面的一个函数,C++里面的一个类。在Python语言下有诸多单元测试框架,如doctest、unittest(原名PyUnit框架)、pytest、nose等。unittest框架为Python语言自带的单元测试框架,Python2.1及其以后的版本已将unittest作为一个标准模块放入Python开发包中。
>>>>>接下来演示不用测试框架的单元测试<<<<<
首先编写被测试类calculator.py
1 #calculator.py 2 3 #计算器类 4 class Count: 5 6 #通过__init()__方法对两个数进行初始化 7 def __init__(self,a,b): 8 self.a = float(a) 9 self.b = float(b) 10 11 #加法返回一个只保留小数点后两位的浮点数 12 def add(self): 13 return round(self.a + self.b,2)
接下来编写单元测试代码test_calculator.py,需放在与calculator.py同级的目录下
1 #test_calculator.py 2 3 from calculator import Count 4 5 #测试两个浮点数相加 6 class TestCount: 7 8 def test_add(self): 9 try: 10 c = Count(3.111,6.229) 11 add = c.add() 12 #编写断言即预期结果 13 assert(add == 9.34),‘Float addition result error!‘ 14 except AssertionError as msg: 15 print(msg) 16 else: 17 print(‘Test pass‘) 18 19 #执行测试类的测试方法 20 mytest = TestCount() 21 mytest.test_add()
执行结果:
1 ========= RESTART: C:/Haauleon/Unittest/20180421/test_calculator.py ========= 2 Test pass
1 ========= RESTART: C:/Haauleon/Unittest/20180421/test_calculator.py ========= 2 Float addition result error!
总结无测试框架的单元测试的弊端:由于测试代码的写法没有一定的规范可遵循,所以十个程序员有可能写出十种不同的代码,由于代码的不统一所以维护起来非常麻烦。而且,如上,测试代码明显要比被测试代码要多得多,然而悲伤的是,不可能一个类仅仅只编写一条测试用例。所以,为了让单元测试代码更容易维护和编写,最好的方式就是要遵循一定的规范来编写测试用例,这也是单元测试框架诞生的初衷。
>>>>>接下来演示用unittest单元测试框架编写的单元测试用例<<<<<
初识gauge自动化测试框架(代码片段)
看到一些同学对该工具有点一兴趣,那么我将继续介绍Gauge自动化测试工具。Gauge本质上一个BDD(BehaviorDrivenDevelopment)测试框架。所以,首先你要了解BDD的操作方式。BDD包含两部分,一部分是:软件行为描述。另一部分是:针对... 查看详情
初识gauge自动化测试框架(代码片段)
segmentfault阅读官方网站:https://docs.gauge.org/latest/index.html介绍:Gauge是一个轻量级的跨平台测试自动化工具,可以使用不同的语言中编写测试用例的能力。Gauge本质上是一个BDD(行为驱动开发)测试框架。如果你了解BDD那么将会比... 查看详情
junitjava单元测试框架|学习笔记(代码片段)
Java单元测试框架|学习笔记文章目录Java单元测试框架|学习笔记一.单元测试1.何为单元测试2.单元测试的优点二.测试驱动开发TDD(Test-DrivenDevelopment)三.JUnit介绍1.Junit是一个开源的Java语言的单元测试框架2.JUnit的特点四.JUnit... 查看详情
unittest单元测试框架总结(代码片段)
unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。今天笔者就总结... 查看详情
unittest单元测试框架(代码片段)
unittestunittest单元测试框架,主要由四部分组成:测试固件、测试用例、测试套件、测试执行器 【测试固件】有两部分,执行测试前的准备部分setUp(),测试执行完后的清扫部分tearDown() 【测试用例】中,... 查看详情
实验单元测试(代码片段)
实验五、单元测试一、实验目的1、掌握单元测试的方法;2、学习XUnit测试原理及框架;3、学习使用测试框架进行单元测试的方法和过程。 二、实验内容与要求1、了解单元测试的原理与框架1.1单元测试原理 单元测试(uni... 查看详情
单元测试框架unittest(代码片段)
1、什么是单元测试 测试函数/方法或者一段代码,用于检验被测代码的一个很小的、很明确的功能是否正确,通常是开发做。2、单元测试框架1)结构测试基本setup方法:第一个测试开始之前只执行一次多个类类:类setup方法:... 查看详情
实验五单元测试(代码片段)
一、实验目的1)掌握单元测试的方法2)学习XUnit测试原理及框架;3)掌握使用测试框架进行单元测试的方法和过程。 二、实验内容与要求1、了解单元测试的原理与框架 1.1单元测试原理 单元测... 查看详情
实验五单元测试(代码片段)
实验五 单元测试一、实验目的1)掌握单元测试的方法2)学习XUnit测试原理及框架;3)掌握使用测试框架进行单元测试的方法和过程。二、实验内容与要求1、了解单元测试的原理与框架 1.1单元测试原理 单元测试(unitt... 查看详情
qt高级——qtestlib单元测试框架(代码片段)
Qt高级——QTestLib单元测试框架一、QTestLib简介1、QTestLib简介QTestLib是Qt提供的一种针对基于Qt编写的程序或库的单元测试框架。QTestLib提供了单元测试框架的基本功能,并提供了针对GUI测试的扩展功能。2、QTestLib特性QTestLib是为了... 查看详情
实验五单元测试(代码片段)
实验五、单元测试一、实验目的1)掌握单元测试的方法学习XUnit测试原理及框架;3)掌握使用测试框架进行单元测试的方法和过程。二、实验内容与要求1、了解单元测试的原理与框架1.1单元测试原理单元测试(unittesting),是... 查看详情
实验单元测试(代码片段)
一、实验目的1、掌握单元测试的方法2、学习XUnit测试原理及框架3、学习使用测试框架进行单元测试的方法和过程二、实验内容与要求1、了解单元测试的原理与框架1.1单元测试原理 单元测试,是指对软件中的最小可测试单元... 查看详情
实验五单元测试(代码片段)
一、实验目的1、掌握单元测试的方法;2、学习XUnit测试原理及框架;3、学习使用测试框架进行单元测试的方法和过程。 二、实验内容与要求了解单元测试的原理与框架1.1单元测试原理 单元测试(unittes... 查看详情
实验五单元测试(代码片段)
一、实验目的(1)掌握单元测试的方法(2)学习XUnit测试原理及框架;(3)掌握使用测试框架进行单元测试的方法和过程。二、实验内容与要求1、了解单元测试的原理与框架1.1单元测试原理单元测试(unittesting),是指对软件中的最... 查看详情
实验五单元测试(代码片段)
一、实验目的1、掌握单元测试的方法2、学习XUnit测试原理及框架3、学习使用测试框架进行单元测试的方法和过程二、实验内容与要求1、了解单元测试的原理与框架1.1单元测试原理单元测试,是指对软件中的最小可测试单元进行... 查看详情
单元测试--unittest(代码片段)
单元测试框架:unittest pytestuniittest: unittest是python内置的单元测试框架,具有编写用例,组织用例,执行用例,输出测试报告等自动化框架的条件。 unittest中的5个重要概念:testFixture,TestCase,TestSuite,TestLoder,TextTestRunner ... 查看详情
第六章:单元测试框架unittest(代码片段)
单元测试框架unittest单元测试单元测试(unittesting)是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,... 查看详情
单元测试,代码测试代码(代码片段)
#单元测试,代码测试代码针对函数、类,检测他的某个方面是否有问题的测试开发测试用例是一组单元测试,每个单元测试是一起核实函数和类在各种情况下的行为都符合要求为什么要做单元测试?1、单元测试->集成测试->2... 查看详情