什么是Python单元测试?

什么是Python单元测试?

更多Python相关文章,请阅读:Python 教程

什么是单元测试?

单元测试是一种软件测试类型,它对系统的每个单独组件进行测试。单元测试是开发人员的重要实践。它确保软件的每个组件按预期运作。单元测试主要是由开发人员在软件开发的编码阶段执行的。

单元测试使问题的修复变得容易,因为开发人员知道系统或软件中有哪个特定组件存在问题,并且开发人员可以修复特定的组件。

Python单元测试

Python内置了一个名为 unittest 的包,用于执行单元测试。单元测试使代码具有未来的扩展性,因为开发人员可以预测代码可能失败的情况,并针对这些情况进行测试。即使可能会忽略某些情况,但仍会针对大多数情况进行测试。

可以通过在Python程序中导入此模块来使用unittest模块,如下所示。

import unittest

例子

假设我们有一个简单的函数,用于计算正方形的面积。让这个文件以”area.py”的名称保存。

def area(a):
   return (a+a)

现在,让我们为上述函数编写单元测试代码,以了解我们的函数是否提供了预期的输出。让单元测试代码文件被保存为名为”unit_test.py”的文件。

unit_test.py &mnus;

from area import *
import unittest

class Testarea(unittest.TestCase):
   def test_area(self):
      self.assertAlmostEqual(area(5),25)
      self.assertAlmostEqual(area(3),9)
      self.assertAlmostEqual(area(4),16)

这里导入了包含要测试的代码的文件。使用unittest方法 assertAlmostEqual() 。这会使用一些输入调用area函数,第二个参数包含函数返回的预期输出。如果area()返回的输出等于预期输出,则测试通过,否则测试失败。

现在让我们从命令提示符中运行unit_test.py,以检查我们的area()代码是否通过了测试。

执行以下命令来从命令提示符运行unit_test文件。

python -m unittest unit_test.py

输出

C:\Users\Inderjit Singh\Desktop>python -m unittest unit_test.py
F
======================================================================
FAIL: test_area (unit_test.Testarea)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "C:\Users\Inderjit Singh\Desktop\unit_test.py", line 7, in test_area
      self.assertAlmostEqual(area(5),25)
AssertionError: 10 != 25 within 7 places (15 difference)

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (failures=1)

我们的代码未通过单元测试。原因在回溯中给出。第一个函数self.assertAlmostEqual(area(5),25)导致我们的代码失败。因为该函数返回的是10,但预期输出是25。

由于这是一个简单的函数,我们知道如何修复它。我们的area()代码是错误的。它应该返回(a*a)而不是(a+a)。

让我们修复area()代码并重新运行单元测试。

def area(a):
   return (a*a)

重新运行unit_test.py

C:\Users\Inderjit Singh\Desktop>python -m unittest unit_test.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

现在,由于我们已经在area()中纠正了代码,所以它正常运行并且状态为OK。这确保了我们的代码在unit_test.py文件中指定的所有情况下都能完美运行。

这是一种非常简单的想法,旨在介绍单元测试的概念。在开发过程中,unittest模块中还有其他各种函数用于单元测试。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程