标签:add over 设计 def start int discover 添加 框架
calculator.py
class Count:
def __init__(self,a,b):
self.a = int(a)
self.b = int(b)
#计算加法
def add(self):
return self.a + self.b
#计算减法
def sub(self):
return self.a - self.b
runtest.py
import unittest
# 加载测试文件
import testadd
import testsub
# 构造测试集
suite = unittest.TestSuite()
suite.addTest(testadd.TestAdd("test_add"))
suite.addTest(testadd.TestAdd("test_add2"))
suite.addTest(testsub.TestSub("test_sub"))
suite.addTest(testsub.TestSub("test_sub2"))
if __name__ == ‘__main__‘:
# 执行测试
runner = unittest.TextTestRunner()
runner.run(suite)
"""
这样的拆分带来了好处,可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,
测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,整体结构更加清晰。
这样的设计看上去很完美,但依然没有解决添加用例的问题,当用例达到成百上千条时,
在runtest.py文件中通过addTest()添加/删除测试用例就变得非常麻烦,
那么有没有方法让unitest单元测试框架自动识别测试用例呢?答案是肯定的,
TestLoader类中提供的discover()方法可以解决这个问题。
"""
testadd.py
from calculator import Count
import unittest
class TestAdd(unittest.TestCase):
def setUp(self):
print("test case start")
def tearDown(self):
print("test case end")
def test_add(self):
j = Count(2,3)
self.assertEqual(j.add(),5)
def test_add2(self):
j = Count(41, 76)
self.assertEqual(j.add(), 117)
if __name__ == ‘__main__‘:
unittest.main()
testsub.py
from calculator import Count
import unittest
class TestSub(unittest.TestCase):
def setUp(self):
print("test case start")
def tearDown(self):
print("test case end")
def test_sub(self):
j = Count(2, 3)
self.assertEqual(j.sub(),-1)
def test_sub2(self):
j = Count(71, 46)
self.assertEqual(j.sub(),25)
if __name__ == ‘__main__‘:
unittest.main()
标签:add over 设计 def start int discover 添加 框架
原文地址:https://www.cnblogs.com/zhang-da/p/12210647.html