自动化三:单元测试框架一

单元测试框架: unittest

单元测试框架的基本构造:

-所有的case类都必须要继承 unittest.TestCase 
-实例setUp方法(初始化测试数据)和实例tearDown方法(清理测试数据)是每次执行case的时候都会被触发执行,这两个方法的构造是可有可无的。
-所有的case执行都是写在函数里面,且函数名称必须以test开头
-在单元测试中,多数都是使用的assert系列的验证方法,不需要手动写捕获异常的代码,框架会自动捕获
-执行用例只需要执行 unittest.main() 这个方法即可。

#encoding=utf-8
import unittest
import random


class TestSequenceFunctions(unittest.TestCase):
    def setUp(self):
        self.seq = list(range(10))  # 初始化一个递增序列
        print("setup completed!")

    def test_run(self):  # case1
        element = random.choice(self.seq)  # 从序列seq中随机选取一个元素
        self.assertTrue(element in self.seq)  # 验证随机元素确实属于列表中

    def test_sth(self):  # case2
        assert 1 == 2

    def tearDown(self):
        print("tearDown completed")


class TestDictValueFormatFunctions(unittest.TestCase):
    def setUp(self):
        self.seq = list(range(10))
        print("setup is ready!")

    def test_shuffle(self):
        random.shuffle(self.seq)  # 随机打乱原seq的顺序
        self.seq.sort()
        self.assertEqual(self.seq, list(range(10)))  # 这个是判断是否相等
        # 验证执行函数时抛出了TypeError异常,函数是random.shuffle((1, 2, 3)),元组是不可变的序列类型,无法打乱排序,会触发TypeError
        self.assertRaises(TypeError, random.shuffle, (1, 2, 3))  # 参数顺序:错误类型, 函数名称, 函数参数


if __name__ == '__main__':
    unittest.main()  # 执行case需要调用这个方法,这个方式是执行全部的case

 

执行结果:

 

posted @ 2020-04-17 09:28  海澜时见鲸  阅读(198)  评论(0)    收藏  举报