python学习笔记 单元测试
来源:互联网 发布:c语言人事管理系统 编辑:程序博客网 时间:2024/06/12 18:26
以test
开头的方法就是测试方法,不以test
开头的方法不被认为是测试方法,测试的时候不会被执行。
对每一类测试都需要编写一个test_xxx()
方法。由于unittest.TestCase
提供了很多内置的条件判断,我们只需要调用这些方法就可以断言输出是否是我们所期望的。最常用的断言就是assertEquals()
:
self.assertEquals(abs(-1), 1) # 断言函数返回的结果与1相等
另一种重要的断言就是期待抛出指定类型的Error,比如通过d['empty']
访问不存在的key时,断言会抛出KeyError
:
with self.assertRaises(KeyError): value = d['empty']
而通过d.empty
访问不存在的key时,我们期待抛出AttributeError
:
with self.assertRaises(AttributeError): value = d.empty
运行单元测试
一旦编写好单元测试,我们就可以运行单元测试。最简单的运行方式是在mydict_test.py
的最后加上两行代码:
if __name__ == '__main__': unittest.main()
这样就可以把mydict_test.py
当做正常的python脚本运行:
$ python mydict_test.py
另一种更常见的方法是在命令行通过参数-m unittest
直接运行单元测试:
$ python -m unittest mydict_test.....----------------------------------------------------------------------Ran 5 tests in 0.000sOK
这是推荐的做法,因为这样可以一次批量运行很多单元测试,并且,有很多工具可以自动来运行这些单元测试。
setUp与tearDown
可以在单元测试中编写两个特殊的setUp()
和tearDown()
方法。这两个方法会分别在每调用一个测试方法的前后分别被执行。
setUp()
和tearDown()
方法有什么用呢?设想你的测试需要启动一个数据库,这时,就可以在setUp()
方法中连接数据库,在tearDown()
方法中关闭数据库,这样,不必在每个测试方法中重复相同的代码:
class TestDict(unittest.TestCase): def setUp(self): print 'setUp...' def tearDown(self): print 'tearDown...'
可以再次运行测试看看每个测试方法调用前后是否会打印出setUp...
和tearDown...
。
0 0
- 【Python学习笔记】单元测试
- python学习笔记 单元测试
- python学习之单元测试
- AppFuse学习笔记-单元测试
- 单元测试学习笔记
- 单元测试实践 学习笔记
- C#单元测试学习笔记
- android学习笔记--单元测试
- laravel单元测试学习笔记
- PowerMock单元测试学习笔记
- 学习笔记_单元测试
- 单元测试学习笔记
- 单元测试学习笔记
- 单元测试学习笔记
- 单元测试学习笔记
- 单元测试:JUnit4学习笔记
- Android单元测试学习笔记
- Python自动单元测试框架学习
- etcd集群搭建--static方式
- 第11周项目1-哈夫曼编码的算法验证
- 第十一周项目1——二叉树算法验证(4) 哈夫曼编码的算法验证
- 纹理对象的实时姿态估计
- 第10周项目3-利用二叉树遍历思想解决问题
- python学习笔记 单元测试
- 排序算法以及稳定性
- (第十一周项目1)二叉树算法验证(4)哈夫曼编码的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第十一周项目1-验证算法(4)
- JSP自定义1-自定义EL函数
- eclipse中使用vim
- 基于Spring+Mybatis的多数据源动态切换
- Unity中的曲线绘制