单元测试---testsuite对象

'''
导包,unittest是自带的框架,不需要安装
创建一个单元测试类(其实就是类,只不过给继承了单元测试框架单元测试用例的类)
单元测试类中五个特殊方法的使用,包括场景及执行顺序
setUp()/test_xxx()/tearDowm():不管你怎么调整为,执行顺序不变
setUp():主要是进行测试用例资源初始化,测试用例的前提条件写这
test_xxx():测试用例,要把测试用例的步骤写在这个方法中
tearDown():主要是进行测试用例资源释放的如: self.mm= None #释放资源,释放内存
@classmethod 注解的方法是类方法,不用创建对象也能用的方法,在对象进内存之前就已经存在的方法随着类一起进的内存
setUpClass:给当前单元测试类的所有的用例进行初始化的
tearDownClass:给当前单元测试类的所有的用例进行资源释放
以test开头的都是测试用例
setUpClass和setUp()区别:
1/setUp() 不需要@classmethod注释,setUpClass则需要@classmethod注释
2/setUp() 实例方法,需要创建对象在调用,setUpClass类方法,不需要对象也可以调用
3/setUp() 在每一个测试用例执行之前运行一次;setUpClass方法在测试执行之前只执行一次
4/setUp() 是度一条用例初始化 ; setUpClass()给当前单元测试类得所有用例进行初始化

5/测试用例执行:
main():把所有测试用例都执行了一遍,执行测试用例顺序控制不了,(按照测试用例名(方法名)得字母顺序来执行得)
使用测试集合得概念:testsuite 类似于分类,我要把加法得测试用例加到一个测试集合testsuite中,只运行该测试集合即可
testsuite:
1/创建 testsuite();对象



'''
import unittest
# 导入文件text_03里面得模块
from text_03.myMathtwo import *


# 创建单元测试类 TestCase(测试用例)
class unitMath(unittest.TestCase):

@classmethod # 注解
def setUpClass(cls):
print("我是setUpClass方法")

@classmethod
def tearDownClass(cls):
print("我是tearDownClass方法")

# 方法名不能改,self不能少
def setUp(self):
print("我是setUp方法")

# 直接调用另一个文件类就行
self.mm = mymath()

# test开头是测试用例
# 第三条测试用例
def test_cheng_2(self):
print("我是第三条测试用例")
actualValue = self.mm.chengfa(12, 2)
expectValue = 24
# 该方法判断断言是否相等
self.assertEqual(actualValue, expectValue, "预期结果和实际结果不符合")

# 第一条测试用例
def test_add_1(self):
print("我是第一条测试用例")
actualValue = self.mm.jia(2, 3)
expectValue = 5
# 该方法判断断言是否相等
self.assertEqual(actualValue, expectValue, "预期结果和实际结果不符合")

# 第二条测试用例
def test_add_2(self):
print("我是第二条测试用例")
actualValue = self.mm.jia("ab", "cd")
expectValue = "abcd"
# 该方法判断断言是否相等
self.assertEqual(actualValue, expectValue, "预期结果和实际结果不符合")

# 方法名不能改,self不能少
def tearDown(self):
print("我是teardown方法")
# 在teardown中释放资源
self.mm = None


if __name__ == "__main__":
# 执行全部测试用例
# unittest.main()
# 选择优先执行单个用例
suitt = unittest.TestSuite()
# 格式:类名(用例名)
# 测试集合对象中有一个方法,addtest--》追加单个测试用例到测试集合(有问题)无法查找自己想要得内容
suitt.addTest(unitMath("test_cheng_2"))

# 测试集合对象中有一个方法,addtests-->追加多个测试用例到测试集合(有问题)
#suitt.addTest(map(unitMath,["test_add_2"]))
# 测试结果
re = unittest.TestResult()
suitt.run(re)
# 字典,结果数据
# print(re.__dict__)

  

posted on 2021-03-07 11:39  爱前端的小魏  阅读(176)  评论(0编辑  收藏  举报

导航