欢迎访问宙启技术站
智能推送

Python的测试程序TestProgram

发布时间:2023-12-11 09:05:08

下面是一个使用Python编写的测试程序TestProgram的例子:

# TestProgram.py
import unittest

def is_prime(n):
    """判断一个数是否为素数"""
    if n <= 1:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

class TestIsPrime(unittest.TestCase):
    def test_is_prime(self):
        self.assertTrue(is_prime(2))
        self.assertTrue(is_prime(3))
        self.assertFalse(is_prime(9))
        self.assertTrue(is_prime(11))
        self.assertFalse(is_prime(12))

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

这个测试程序包含一个判断一个数是否为素数的函数is_prime,以及一个用于测试这个函数的测试类TestIsPrime。测试类继承自unittest.TestCase,每个测试方法以test_开头。

使用unittest.main()运行测试程序。在运行时,会执行测试类中所有以test_开头的测试方法,并输出测试结果。

接下来,我们通过命令行运行这个测试程序,并查看结果:

$ python TestProgram.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

结果显示测试通过,共运行了1个测试。

我们可以进行一些修改,让测试不通过,看看运行结果:

# 修改 TestProgram.py 中的测试方法 test_is_prime
def test_is_prime(self):
    self.assertTrue(is_prime(2))
    self.assertTrue(is_prime(3))
    self.assertFalse(is_prime(9))
    self.assertTrue(is_prime(11))
    self.assertTrue(is_prime(12))

再次运行测试程序,结果如下:

$ python TestProgram.py
F
======================================================================
FAIL: test_is_prime (__main__.TestIsPrime)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "TestProgram.py", line 14, in test_is_prime
    self.assertTrue(is_prime(12))
AssertionError: False is not true

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (failures=1)

结果显示测试不通过,其中最后一行表示有1个测试失败。

这个例子描述了一个简单的测试程序的编写和运行过程。你可以按照这个示例编写并运行自己的测试程序。