Python setUp() 和 tearDown() - 在unittest库中使用的方法

2023-04-04 00:00:00 python SetUp tearDown

setUp() 和 tearDown() 是 unittest 测试框架中使用的两个方法。这两个方法用于在每个测试方法运行前和运行后执行一些准备和清理工作。

setUp() 方法在每个测试方法运行之前调用,用于准备测试所需的环境,例如初始化测试数据,创建对象或者连接数据库等。这个方法通常用于测试之前需要做的一些准备工作。

tearDown() 方法在每个测试方法运行结束之后调用,用于清理测试时所创建的资源,例如关闭数据库连接,删除测试数据或者清除对象等。这个方法通常用于测试结束后需要做的一些清理工作。

下面是一个示例,演示了如何在 setUp() 和 tearDown() 方法中创建和销毁对象:

import unittest

class TestStringMethods(unittest.TestCase):

    def setUp(self):
        self.website = "pidancode.com"
        print("setUp method called.")

    def tearDown(self):
        self.website = None
        print("tearDown method called.")

    def test_upper(self):
        self.assertEqual('pidancode.com'.upper(), 'PIDANCODE.COM')

    def test_isupper(self):
        self.assertTrue('PIDANCODE.COM'.isupper())
        self.assertFalse('pidancode.com'.isupper())

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

在这个示例中,setUp() 方法创建了一个 website 变量,并将其设置为 "pidancode.com"。在测试方法中,我们可以使用 self.website 来引用这个变量。tearDown() 方法将 website 变量设置为 None,以便在测试完成后清除变量。

这个示例包含两个测试方法 test_upper() 和 test_isupper(),这两个测试方法会在 setUp() 和 tearDown() 方法之间执行。在每个测试方法执行之前,setUp() 方法会被调用来准备测试环境;在每个测试方法执行完成后,tearDown() 方法会被调用来清理测试环境。

可以使用以下命令运行测试:

python test_string_methods.py

测试结果应该如下所示:

setUp method called.
tearDown method called.
.setUp method called.
tearDown method called.
.
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

这里运行了两个测试方法,每个测试方法都执行了一次 setUp() 方法和一次 tearDown() 方法。在运行测试的过程中,控制台输出了 setUp() 和 tearDown() 方法被调用的消息。

相关文章