10 使用unittest进行测试之编写和运行unittest

在上一篇中,我们对 unittest 框架进行了介绍,了解了它的基本结构和功能。在本篇教程中,我们将重点讨论如何编写和运行 unittest 测试用例,以及如何使用它们来验证代码的正确性。我们将通过具体案例来进行详细的讲解和示范。

1. 编写测试用例

unittest 框架允许我们通过创建继承自 unittest.TestCase 的类来编写测试用例。下面是一个简单的示例,我们将测试一个计算器类的方法。

示例代码

首先,假设我们有一个简单的计算器类 Calculator,其实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# calculator.py
class Calculator:
def add(self, x, y):
return x + y

def subtract(self, x, y):
return x - y

def multiply(self, x, y):
return x * y

def divide(self, x, y):
if y == 0:
raise ValueError("Cannot divide by zero!")
return x / y

接下来,我们将为 Calculator 类编写测试用例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# test_calculator.py
import unittest
from calculator import Calculator

class TestCalculator(unittest.TestCase):

def setUp(self):
"""在每个测试之前执行"""
self.calculator = Calculator()

def test_add(self):
"""测试加法"""
self.assertEqual(self.calculator.add(1, 2), 3)
self.assertEqual(self.calculator.add(-1, 1), 0)
self.assertEqual(self.calculator.add(-1, -1), -2)

def test_subtract(self):
"""测试减法"""
self.assertEqual(self.calculator.subtract(3, 2), 1)
self.assertEqual(self.calculator.subtract(-1, -1), 0)

def test_multiply(self):
"""测试乘法"""
self.assertEqual(self.calculator.multiply(2, 3), 6)
self.assertEqual(self.calculator.multiply(-1, 5), -5)

def test_divide(self):
"""测试除法"""
self.assertEqual(self.calculator.divide(6, 2), 3)
self.assertEqual(self.calculator.divide(-4, 2), -2)
with self.assertRaises(ValueError):
self.calculator.divide(1, 0)

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

代码解析

  1. 我们创建了一个类 TestCalculator,该类继承自 unittest.TestCase
  2. setUp 方法中,我们初始化了一个 Calculator 实例。该方法在每个测试方法运行之前被调用。
  3. 每个测试方法以 test_ 开头,代表这是一个测试用例。
  4. 使用 self.assertEqual() 验证预期结果和实际结果是否相等。
  5. 使用 self.assertRaises() 来测试是否抛出特定的异常。

2. 运行测试

要运行我们编写的测试用例,可以在命令行中执行以下命令:

1
python -m unittest test_calculator.py

如果测试通过,则会显示一条类似于以下的信息:

1
2
3
4
5
....
----------------------------------------------------------------------
Ran 4 tests in 0.001s

OK

如果有某个测试失败,输出将显示哪些测试失败了,及其原因。

3. 测试结果分析

测试的输出信息是非常重要的,它帮助我们快速定位问题。如果某一个测试的结果不符合预期,unittest 会打印出实际结果与预期结果的对比信息,这样我们就可以清楚地看到哪里出了问题。

4. 小结

在本篇教程中,我们学习了如何使用 unittest 框架来编写和运行测试用例。通过具体的案例,我们了解了如何使用 unittest 提供的断言和异常处理功能来验证代码的行为。

在下一篇教程中,我们将深入探讨 unittest 中的测试用例和测试套件的概念,带你进一步掌握如何组织和管理测试,提高测试的灵活性和可维护性。

希望你对这个章节的内容有所收获!如果你有任何问题或需要进一步的示范,请随时提问。

10 使用unittest进行测试之编写和运行unittest

https://zglg.work/python-auto-test/10/

作者

AI免费学习网(郭震)

发布于

2024-08-11

更新于

2024-08-12

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论