【4-1】基于Python-unittest运用:unittest介绍及实例


该第四章节是最重要的基础:unittest


 

1. 什么是unittest?

unittest是python的标准测试库,相比于其他测试框架是python目前使用最广的单元测试框架。

unittest有4个比较重要的概念是TestCase、TestSuite、TestLoader、 TestRunner、TestReport

 

实例:unittest模拟测试

import unittest


class TestCase(unittest.TestCase):

    def setUp(self):
        """每个case执行开始都执行一次"""
        print("第{0}用例开始".format(self.i))

    def tearDown(self):
        """每个case执行结束都执行一次"""
        print("第{0}用例结束".format(self.i))

    # 那如何让执行此类才执行一次呢?
    @classmethod
    def setUpClass(cls):
        print("--类开始--")

    @classmethod
    def tearDownClass(cls):
        print("--类结束--")

    # 以下为用例
    def test_case01(self):
        print("111")

    def test_case02(self):
        print("222")

    def test_case03(self):
        print("333")


if __name__ == "__main__":
    unittest.main()
    

 

输出结果为:

--类开始--
用例开始
111
用例结束
用例开始
222
用例结束
用例开始
333
用例结束
--类结束--

 

classmethod修饰符:

  classmethod修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等

 

实例: classmethod 的使用方法

#coding: UTF-8

class A(object):
    bar = 1
    def func1(self):
        print('foo')

    @classmethod
    def func2(cls):
        print('func2')
        print(cls.bar)
        cls().func1()   # 调用 foo 方法


A.func2()              # 不需要实例化

输出结果为:

func2
1
foo

 

TestLoader是用来加载TestCase到TestSuite中的,其中有几个loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TestSuite实例


作者:慧琴如翌
链接:https://www.jianshu.com/p/848c23608fa7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2020-09-03 17:31  Yulisa  阅读(163)  评论(0)    收藏  举报
321312321321