python单元测试入门_python 单元测试- unittest
unittest介绍
unittest是python标准库里用于单元测试的模块。单元测试用来对最小可测试单元进行正确性检验。
单元测试好处:确保代码质量
改善代码设计,难以测试的代码一般是设计不够简洁的代码。
保证重构不会引入新问题,以函数为单位进行重构的时候,只需要重新跑测试就基本可以保证重构没引入新问题。
unittest基础概念:
test fixture
TestCase 表示测试用例,一个测试用例可以包含多个测试方法,每个方法都要以test_开头.测试方法中用到的self.assertXXX的方法是读研语句,单元测试都是使用这样的断言语句判断测试是否通过:如果断言为False,会跑出AssertionError异常。不以test开头的方法不被认为是测试方法,测试的时候不会执行。
TestSuit 测试套件,它将一组测试用例作为一个测试对象
test runner
单元测试样例:
编写一个类class A():
def __init__(self, n):
self.n = n
def add(self, number):
self.n += number
def reduce(self, number):
self.n -= number
单元测试myTest.pyimport unittest
class MyTest(unittest.TestCase):
def setUp(self):
# 每个测试用例执行之前做操作
print u’开始初始化’
self.a = A(10)
def tearDown(self):
# 每个测试用例执行之后做操作
print u’结束’
def test_add(self):
self.a.add(10)
print ‘test_add——>’, self.a.n
self.assertIsInstance(self.a.n, int)
self.assertEqual(self.a.n, 20)
def test_reduce(self):
self.a.reduce(10)
print ‘test_reduce——>’, self.a.n
self.assertIsInstance(self.a.n, int)
self.assertEqual(self.a.n, 0)
if __name__ == ‘__main__‘:
unittest.main()
测试结果:
python2 myTest.py
开始初始化
test_add——> 20
F结束
开始初始化
test_reduce——> 0
结束
.
setUp()和tearDown()
setUp() 列出测试前的准备工作,常用来做一些初始化,非必需方法。
tearDown()方法列出了测试完成后的收尾工作,用来销毁测试过程中产生的影响,非必需方法。
mock 伪造函数、对象、类的返回值
用于单元测试时,伪造函数返回值。import tool
from unittest import mock
response=[[‘小明’,80]]
tool.query_student=mock.Mock(return_value=response)
print(tool.query_student(1))
# [‘小明’,80]
还没有评论,来说两句吧...