python单元测试框架unittest

来源:千锋教育
发布时间:2023-11-06 09:55:37
分享

unittest是python单元测试框架,又叫做PyUnit。

之所以称为框架是它代替开发人员完成了一些调用、IO等与单元测试无直接关系的支撑代码,让开发人员可以专注与测试用例的编写,简化单元测试工作。

单元测试是一种基本的,由开发人员(而不是测试人员)完成的测试,保证一个程序基本单元的正确性。“单元”的概念我个人理解就类似电子设备中的元器件,一个个元器件(单元)组成了整个电子设备(程序)。而元器件的功能是单一的、确定的,可以在电子设备未完全成型(程序未完全实现)之前对其正确性进行测试(即单元测试)。同时,这些元器件是独立的,可以方便的更换(高内聚,低耦合,可以任意重构——只要满足前面的单元测试)。所以单元测试是测试驱动开发、极限编程、敏捷中的重要概念。

一个简单的例子:

#FileName:ut_target.py

classEqualToZero(Exception):pass

classSplitZero(object):

defsplitzero(self,num):

ifnum>0:

return"numisbiggerthanzero"

elifnum<0:

return"numissmallerthanzero"

else:

raiseEqualToZero

#FileName:utest.py

fromut_targetimportSplitZero,EqualToZero

importunittest

classSzTestCase(unittest.TestCase):

defsetUp(self):

print"teststart"

deftearDown(self):

print"teststop"

deftestSzBig(self):

num=10

sz=SplitZero()

self.assertEqual(sz.splitzero(num),

"numisbiggerthanzero")

deftestSzSmall(self):

num=-10

sz=SplitZero()

self.assertEqual(sz.splitzero(num),

"numissmallerthanzero")

deftestSzEqual(self):

num=0

sz=SplitZero()

self.assertRaises(EqualToZero,sz.splitzero,num)

if__name__=="__main__":

unittest.main()

执行pythonutest.py-v

testSzBig(__main__.SzTestCase)...teststart

teststop

ok

testSzEqual(__main__.SzTestCase)...teststart

teststop

ok

testSzSmall(__main__.SzTestCase)...teststart

teststop

ok

----------------------------------------------------------------------

Ran3testsin0.000s

OK

unittest基本使用方法

1.importunittest

2.定义一个继承自unittest.TestCase的测试用例类

3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作。

4.定义测试用例,名字以test开头。

5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。

6.调用unittest.main()启动测试

7.如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。

以上内容为大家介绍了python单元测试框架unittest,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。https://www.mobiletrain.org/

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • Python之详解__slots__ 这个__slots__关键字究竟是做什么的呢?它主要有两个功能,我们先来说第一个功能,就是限制用户的使用。我们都知道Python是一门非常灵活的动态语言,很多在其他语言看起来完全不能容忍的事情在Pyt
  • Python之详解__str__, __repr__和__format__ 我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例是一个非常不起眼的应用,但是在实际的编程当中却非常重要。原因也很简单,因为我们debug的时候往往会想看下某个类当中的内容是不是符合我们的预期
  • Python 的 import 机制 1.1什么是import机制?通常来讲,在一段Python代码中去执行引用另一个模块中的代码,就需要使用Python的import机制。import语句是触发import机制最常用的手段,但并不是唯一
  • python的查找器 一、元路径查找器(metapathfinder)元路径查找器的工作就是看是否能找到模块。这些查找器存放在sys.meta_path中以供Python遍历(当然它们也可以通过import勾子返回,参见上
  • Python中的hash 有没有想过,Python中的字典为什么这么高效稳定。原因是他是建立在hash表上。了解Python中的hash表有助于更好的理解Python,因为Python中字典无处不在。hash函数哈希函数是一个
  • Python 里的hash()函数 python中含有内置的函数去给对象生成哈希值,也就是hash()函数,这个函数将一个对象作为输入,返回一个整数的hash值。内部的,这个函数涉及到.\__hash\__()这个输入对象的方法,所以呢