Python单元测试经验总结
作者:网络转载 发布时间:[ 2014/5/26 13:33:36 ] 推荐标签:Python 单元测试 自动化测试工具
python写单元大多数都会用到unittest和mock,测试代码覆盖率都会用到coverage,后再用nose把所有的东西都串起来,这样每次出版本,都能把整个项目的单元测试都运行一遍。
Unittest
unittest不详细介绍了,注意几点:
测试类继承unittest.TestCase
测试类、测试方法名字好以test开头,很多工具能根据名字来自动运行,很方便
测试类里面的setUp/tearDown会在每个case执行之前/之后执行,setUpClass/tearDownClass加上@classmethod在整个测试类开始和结束的时候执行
测试文件的main函数里面加上unittest.main(),可以直接用python命令运行了
Mock
单元测试里面比较精髓的是mock了,介绍几种常见的场景:
1. Mock一个函数。其实有好几种方法,个人比较推荐下面这种,看上去很清晰:
def multiple(a, b):
return a*b
class TestProducer(unittest.TestCase):
def setUp(self):
self.calculator = Calculator()
@mock.patch('multiple')
def test_multiple(self, mock_multiple):
mock_multiple.return_value = 3
self.assertEqual(multiple(8, 14), 3)
|
2. Mock一个对象里面的方法
class Calculator(object):
def add(self, a, b):
return a+b
class TestProducer(unittest.TestCase):
def setUp(self):
self.calculator = Calculator()
@mock.patch.object(Calculator, 'add')
def test_add(self, mock_add):
mock_add.return_value = 3
self.assertEqual(self.calculator.add(8, 14), 3)
|
3. 让Mock的函数每次被调用返回不同的值,而1,2中的方法每次调用都会返回同样的值
class TestProducer(unittest.TestCase):
@mock.patch.object(Calculator, 'add')
def test_effect(self, mock_add):
mock_add.side_effect = [1, 2, 3]
self.assertEqual(self.calculator.add(8, 14), 1)
self.assertEqual(self.calculator.add(8, 14), 2)
self.assertEqual(self.calculator.add(8, 14), 3)
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
适合Java开发者学习的Python入门教程300行Python代码打造实用接口测试框架数据库并行读取和写入之Python实现Python单元测试??使用装饰器实现测试跳过和预期故障python小工具:用python操作HP的Quality CenterPython:Anaconda安装虚拟环境到指定路径Ubuntu 从零开始搭建Python开发环境如何简单实现接口自动化测试??基于pythonpython unittest控制用例的执行顺序用Python写一个NoSQL数据库python unittest之加载及跳过测试方法和示例通过Python的JIRA库操作JIRAAppium+Python做移动端自动化测试Python使用装饰器在执行单元测试时配置环境使用Python对SQLite数据库操作性能测试平台效率优化的一次经验(Python版)
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南