Pytest 断言基础:轻松掌握测试验证技巧

概述

在编写测试时,断言(assertions)是验证代码行为是否符合预期的关键工具。Pytest 提供了简单且强大的断言机制,让测试变得直观易懂。本文将带你了解如何使用 Pytest 进行基本的断言操作,帮助你快速上手。

什么是断言?

断言是一种用于检查程序内部状态是否如预期的方法。如果断言失败(即条件不满足),则会抛出异常并报告错误信息,从而帮助开发者迅速定位问题所在。

在 Pytest 中,你可以直接使用 Python 的 assert 关键字进行断言。Pytest 对 assert 做了增强处理,能够提供更详细的失败信息,便于调试。

编写第一个断言

假设我们有一个简单的加法函数,位于 utils/common.py 文件中:

def add(a, b):
    return a + b

我们将编写一个测试用例来验证这个加法函数的行为是否正确。

创建测试文件

前面已经详细讲述如何编写一个测试用例,可参考 初探 Pytest:编写并运行你的第一个测试用例

完成一个测试用例的编写后,我们就可以继续使用断言来完善我们的测试用例

断言的基本用法

简单数值比较

最基本的断言就是直接比较两个值是否相等:

def test_simple_comparison():
    value = 5
    assert value == 5  # 检查变量是否等于5

比较列表或元组

对于集合类型的数据,可以直接进行比较:

def test_list_comparison():
    my_list = [1, 2, 3]
    assert my_list == [1, 2, 3]  # 检查列表内容是否相同

验证布尔值

你可以使用断言来验证某个表达式的结果是否为 TrueFalse

def test_boolean_check():
    flag = True
    assert flag is True  # 检查变量是否为True
    assert flag # 也可以这样不写表达式,flag为True则成立

检查异常

有时候我们需要确保某段代码确实会抛出特定类型的异常。可以使用 pytest.raises() 来捕获异常:

import pytest

def test_exception():
    with pytest.raises(ValueError):
        raise ValueError("This is an error")

运行测试

完成上述步骤后,就可以运行测试了!运行测试用例的方式可参考 初探 Pytest:编写并运行你的第一个测试用例
当运用用例得到一下结果:

============================= test session starts =============================
collected 1 item

tests/test_sample.py .                                                 [100%]

============================== 1 passed in 0.01s ==============================

这说明你的断言通过了,测试也通过了!

总结

在这篇文章中,我们一起学习了如何使用 Pytest 进行基本的断言操作。通过简单的例子,我们掌握了:

  • 如何使用 assert 进行数值、列表和布尔值的比较。
  • 如何捕获并验证异常。
  • 如何运行和查看测试结果。

掌握这些基础技巧,你就可以开始为自己的项目编写有效的测试用例了。随着经验的积累,你会发现断言不仅能提高代码质量,还能让你更自信地进行开发。

你可能感兴趣的:(掌握Pytest:从新手到专家,pytest,自动化,python)