Python unittest setUp函数

时间:2013-07-15 15:08:47

标签: python

我对Python比较陌生。根据{{​​3}}文档:

  

设置()
  调用准备测试夹具的方法。 在调用测试方法之前立即调用;此方法引发的任何异常都将被视为错误而非测试失败。默认实现不执行任何操作。

关于setUp的问题如下:

在我们的测试代码库中,我看到我们通过继承unittest.TestCase来定制Python测试框架。最初,unittest.TestCase的名称为setUptearDown。在自定义类中,我们有setUpTestCasetearDownTestCase。所以每次调用这两个函数而不是那些原始函数。

我的问题是:

  1. 底层测试运行器如何调用setUptearDown函数?
  2. 用于设置测试用例的那些函数是否应该以{{1​​}}开头,用于拆除测试用例的函数应该以{{1​​}}开头?或者它可以被命名为任何有效的标识符?
  3. 谢谢。

1 个答案:

答案 0 :(得分:8)

  1. setUp()和tearDown()方法在继承自unittest.TestCase的类中可用时自动使用。
  2. 它们应该命名为setUp()和tearDown(),只有在执行测试方法时才会使用它们。
  3. 示例:

    class MyTestCase(unittest.TestCase):
      def setUp(self):
         self.setUpMyStuff()
    
      def tearDown(self):
         self.tearDownMyStuff()
    
    class TestSpam(MyTestCase):
      def setUpMyStuff(self):
        # called before execution of every method named test_...
        self.cnx = # ... connect to database
    
      def tearDownMyStuff(self):
        # called after execution of every method named test_...
        self.cnx.close()
    
      def test_get_data(self):
        cur = self.cnx.cursor()
        ...