Python 中的 fixture 和 fixtures


1 Fixture 概念

Fixture是测试中的概念:

  • Fixture 指的是测试中依赖的数据和条件等等
  • Python的 unittest 库提供了对 fixture的一些支持
  • 每个TestCase 应该在setUp中, 自己负责资源的创建, 例如
class MyTestCase(unittest.TestCase):

    def my_fixture_setup(self):
        pass

    def setUp(self):
        super(MyTestCase, self).setUp()
        self.my_fixture_setup()
  • 每个TestCase 应该新建一个函数, 负责资源的销毁. 并把这个新的函数加入到TestCase的cleanup列表当中
class MyTestCase(unittest.TestCase):

    def my_fixture_cleanup(self):
        print("++++ my_cleanup")
           
    def setUp(self):
        super(MyTestCase, self).setUp()
        self.addCleanup(self.my_fixture_cleanup)

以下是完整的代码

from __future__ import print_function
import unittest
 
class MyTestCase(unittest.TestCase):

    def my_fixture_setup(self):
        pass
        
    def my_fixture_cleanup(self):
        print("++++ my_cleanup")
           
    def setUp(self):
        super(MyTestCase, self).setUp()
        self.my_fixture_setup()
        self.addCleanup(self.my_fixture_cleanup)

    def tearDown(self):
        super(MyTestCase, self).tearDown()
        print("++++ tearDown")
        
    def my_cleanup(self):
        print("++++ my_cleanup")
        
    def test_case_1(self):
        print("++++ test case 1")


2 Python 中的 Fixtures 包

Fixtures(复数)是Python中的一个包, 提供了一些工具包来快速创建/销毁 fixture

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。