python做单元测试_如何使用python做单元测试?

本文介绍了Python单元测试的重要性和基本方法,重点讲解了如何使用unittest和pytest进行测试。pytest因其简洁的语法和丰富的功能,逐渐成为Python社区的首选测试库。通过实例展示了如何验证函数返回值和异常处理,并分享了一些常用的pytest命令,强调了单元测试对于确保代码质量和模块化设计的重要性。
摘要由CSDN通过智能技术生成

很多编程小白不太理解单元测试,为什么要进行单元测试呢?很简单,主要是提高代码的正确,同时确保重构不出错。接下来我们一起学习怎么用python做单元测试吧。

python内置了一个unittest,但是写起来稍微繁琐,比如都要写一个TestCase类,还得用 assertEqual, assertNotEqual等断言方法。 而使用pytest运行测试统一用assert语句就行,兼容unittest,目前很多知名开源项目如PyPy,Sentry也都在用。关于pytest的使用可以参考其官方文档,虽然有很多高级特性,但是掌握其中一小部分基本就够用了。

下面是py.test的基本用法,以常见的两种测试类型(验证返回值和抛出异常)为例:

def add(a, b):

"""return a + b

Args:

a (int): int

b (int): int

Returns:

a + b

Raises:

AssertionError: if a or b is not integer

"""

assert all([isinstance(a, int), isinstance(b, int)])

return a + b

def test_add():

assert add(1, 2) == 3

assert isinstance(add(1, 2) , int)

with pytest.raises(Exception):    # test exception

add('1', 2)

基本使用就是这么简单。真实场景下远远比这个复杂,甚至有时候构造测试的时间比写业务逻辑的时间还要长。但是再复杂的逻辑也是一点点功能堆积,如果可以确保每一部分都正确,整体上是不会出错的。单元测试同时也提醒我们,函数完成的功能尽可能单一,这样才利于测试。

下面几个是我常用的pytest命令:

py.test test_mod.py   # run tests in module

py.test somepath      # run all tests below somepath

py.test -q test_file_name.py    # quite输出

py.test -s test_file_name.py    # -s参数可以打印测试代码中的输出,默认不打印,print没结果

py.test test_mod.py::test_func  # only run tests that match the "node ID",

py.test test_mod.py::TestClass::test_method  # run a single method in

以上就是使用python做单元测试的方法。更多Python学习推荐:云海天Python教程网。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值