栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Unittest使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unittest使用

目录

介绍

概念分析

TestCase

TestSuite

TestRunner

TestLoader

Test fixture

介绍

        unittest是python单元测试框架,类似于Junit框架,其中有5个比较重要的概念,在这里和大家分享一下。

        unittest中的5个用法分别为test fixture,test case,test suite,test runner,test loader,掌握这几种方法可以更好地帮助我们使用unittest。

概念分析

TestCase

        一个TestCase的实例就是一个测试用例。一个测试用例包括测试前环境的搭建(setup),执行测试代码,以及测试后环境的还原,单元测试(unittest)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。例如:

class MyTestCase03(unittest.TestCase):  #引用unittest.Testcase
 
    def test01(self):
        print('test01')

    def test02(self):
        print('test02')

TestSuite

        多个测试用例集合在一起,就是TestSuite,也可以理解为多个测试用例的合集,而且TestSuite也可以嵌套TestSuite。

TestRunner

        TestRunner是用来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法,例如:

class MyTestCase04(unittest.TestCase):
    def test03(self):
        print('test03')
    def test04(self):
        print('test04')

if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    runner.run(suite)     #使用run()方法来执行测试用例

TestLoader

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

class MyTestCase04(unittest.TestCase):
    def test03(self):
        print('test03')
    def test04(self):
        print('test04')


if __name__ == '__main__':
    loader = unittest.TestLoader()
    suite = unittest.TestSuite()
    suite.addTest(loader.loadTestsFromTestCase(MyTestCase04))  #加载测试用例

Test fixture

        Test Fixture用在测试方法前,或者测试方法后,主要功能是提供一些测试需要用的装置,这些装置可以是数据,可以是环境配置也可以是一个运行前状态,通过覆盖TestCase()的setUp()和tearDown()方法来实现,例如我们在测试用例前定义一个setup、teardown,这样每执行一个用例都会先执行setup、tewrdown方法。

class MyTestCase(unittest.TestCase):

   
    def setUp(self) -> None:
        print('setup...')

    def tearDown(self) -> None:
        print('teardown...')

    def test01(self):
        print('test01')

    def test02(self):
        print('test02')

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

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/980321.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号