博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python模块——unittest 单元测试
阅读量:5132 次
发布时间:2019-06-13

本文共 2145 字,大约阅读时间需要 7 分钟。

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

之所以称为框架是它代替开发人员完成了一些调用、IO等与单元测试无直接关系的支撑代码,让开发人员可以专注与测试用例的编写,简化单元测试工作。
 
单元测试是一种基本的,由开发人员(而不是测试人员)完成的测试,保证一个程序基本单元的正确性。“单元”的概念我个人理解就类似电子设备中的 元器件,一个个元器件(单元)组成了整个电子设备(程序)。而元器件的功能是单一的、确定的,可以在电子设备未完全成型(程序未完全实现)之前对其正确性 进行测试(即单元测试)。同时,这些元器件是独立的,可以方便的更换(高内聚,低耦合,可以任意重构——只要满足前面的单元测试)。所以单元测试是测试驱 动开发、极限编程、敏捷中的重要概念。
 
一个简单的例子:
1 #FileName: ut_target.py 2 class EqualToZero(Exception): pass 3 class SplitZero(object): 4     def splitzero(self, num): 5         if num > 0: 6             return "num is bigger than zero" 7         elif num < 0: 8             return "num is smaller than zero" 9         else:10             raise EqualToZero11  12  13 #FileName: utest.py14 from ut_target import SplitZero, EqualToZero15 import unittest16  17 class SzTestCase(unittest.TestCase):18     def setUp(self):19         print "test start"20     def tearDown(self):21         print "test stop"22     def testSzBig(self):23         num = 1024         sz = SplitZero()25         self.assertEqual(sz.splitzero(num),26                          "num is bigger than zero")27     def testSzSmall(self):28         num = -1029         sz = SplitZero()30         self.assertEqual(sz.splitzero(num),31                          "num is smaller than zero")32     def testSzEqual(self):33         num = 034         sz = SplitZero()35         self.assertRaises(EqualToZero, sz.splitzero, num)36  37 if __name__ == "__main__":38     unittest.main()39  40 执行python utest.py -v41 testSzBig (__main__.SzTestCase) ... test start42 test stop43 ok44 testSzEqual (__main__.SzTestCase) ... test start45 test stop46 ok47 testSzSmall (__main__.SzTestCase) ... test start48 test stop49 ok50  51 ----------------------------------------------------------------------52 Ran 3 tests in 0.000s53  54 OK
unittest基本使用方法
1.import unittest
2.定义一个继承自unittest.TestCase的测试用例类
3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作。
4.定义测试用例,名字以test开头。
5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
6.调用unittest.main()启动测试
7.如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。
 
参考
[1]
[2]

转载于:https://www.cnblogs.com/lvxiuquan/archive/2012/09/25/2701152.html

你可能感兴趣的文章
Eclipse Python插件 PyDev
查看>>
selenium+python3模拟键盘实现粘贴、复制
查看>>
第一篇博客
查看>>
typeof与instanceof的区别
查看>>
网站搭建(一)
查看>>
SDWebImage源码解读之SDWebImageDownloaderOperation
查看>>
elastaticsearch
查看>>
postgreSQL 简单命令操作
查看>>
Spring JDBCTemplate
查看>>
Radon变换——MATLAB
查看>>
第五章笔记
查看>>
Iroha and a Grid AtCoder - 1974(思维水题)
查看>>
gzip
查看>>
转负二进制(个人模版)
查看>>
LintCode-Backpack
查看>>
查询数据库锁
查看>>
[LeetCode] Palindrome Number
查看>>
我对于脚本程序的理解——百度轻应用有感
查看>>
SQL更新某列包含XX的所有值
查看>>
网易味央第二座猪场落户江西 面积超过3300亩
查看>>