您的位置 首页 java

python单元测试框架unittest案例

1.首先定义几个被测试函数:

#coding=utf-8
 
def add(a,b):
 return a+b
 
def minus(a,b):
 return a-b
 
def multi(a,b):
 return a*b
 
def divide(a,b):
 return float(a)/b
 

2.定义测试类:

#coding=utf-8
 
import unittest
from world import *
 
class TestWorldFunc(unittest.TestCase):
 
 def test_add(self):
 print 'test_add'
 self.assertEqual(3,add(1,2))
 self.assertEqual(3,add(2,1))
 
 def test_minus(self):
 print 'test_minus'
 self.assertEqual(1,minus(3,2))
 
 def test_multi(self):
 print 'test_multi'
 self.assertEqual(4,multi(2,2))
 
 def test_divide(self):
 print 'test_divide'
 self.assertEqual(2,divide(6,3))
 self.assertEqual(2.5,divide(5,2))
 
 def setUp(self):
 print 'do something before test.prepare environment'
 
 def tearDown(self):
 print 'do something after test.clear up'
 
 @classmethod
 def setUpClass(cls):
 print 'this setup only called once'
 
 @classmethod
 def tearDownClass(cls):
 print 'this tearDown only called once'
 
if __name__ == '__main__':
 unittest.main()
 

有几个需要注意的地方:

1.这是我们自己定义的测试类,因为使用了unittest框架,所以需要继承unittest.Testcase类。

2.每一个测试函数都需要一test开头,这样会自动填充很多内容。

3.对于简单的有返回值的函数可以直接使用unittest框架的断言assertEqual()。这个断言判断两个值是否相等,如果不相等,则会测验不通过。对于上面的案例,把除法中的float删掉,那么5/2的结果应该是2.与2.5不相等,所以出现以下提示:

4.关于setUp函数和teardown函数:setUp会在每个case开始之前执行,比如说初始化一些环境,而tearDown会在每个case结束之后执行,可用于清除这个case执行完之后的痕迹。

5.关于setUpclass函数和tearDownclass函数:setUpClass函数只会在第一个case执行前之后执行,不会再每个case之前执行,tearDownclass只会在最后一个case执行完之后执行。如以上代码实例:

可以看到tearDownclass和setUpclass只调用了一次。此外需要注意这两个函数申明的时候需要加上注解:@classmethod

3.定义测试顺序

#coding=utf-8
 
import unittest
from test_world import TestWorldFunc
 
'''
按顺序执行某几个函数。即可以按顺序
'''
 
if __name__ == '__main__':
 suite = unittest.TestSuite()
 #添加某些case的时候
 tests = [TestWorldFunc("test_multi"),TestWorldFunc("test_minus"),TestWorldFunc("test_divide")]
 suite.addTests(tests)
 with open('result','a') as f:
 runner = unittest.TextTestRunner(stream=f,verbosity=2)
 runner.run(suite)
 suite.addTest(TestWorldFunc("test_multi"))
 

附上美图!妥妥的干货啊有木有?喜欢的话点击关注哦,欢迎评论收藏哦!更多精彩内容详细了解 尚学堂

文章来源:智云一二三科技

文章标题:python单元测试框架unittest案例

文章地址:https://www.zhihuclub.com/192728.shtml

关于作者: 智云科技

热门文章

网站地图