温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python单元测试如何写

发布时间:2022-02-21 15:11:54 来源:亿速云 阅读:203 作者:iii 栏目:开发技术

今天小编给大家分享一下python单元测试如何写的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

unittest引入

unittest框架现在已经被python官方“收编”,unittest作为python标准包支持的库,在使用时只需要直接引入即可,不需要使用pip进行安装。

如何写单元测试代码

单元测试代码可以简单的分成三步,分别为Given,When,Then。Given代表初始状态或者前置条件(可以简单的理解为数据输入);When代表行为发生,也就是进行测试动作;Then则是断言结果。

所以大部分情况下我们可以把单元测试的代码分为三块:

  1. 第一块代码负责测试前的数据处理,比如输入数据等。

  2. 第二块代码负责调用相关的功能模块进行测试。

  3. 第三块代码负责将测试的结果与我们期待的结果进行比对,从而得出测试结果(通过或者失败)。

代码实战

以一个简单的计算功能为例,以下是这个计算模块的方法(文件名为calculator.py):

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


def substract(a, b):
    return a-b

我们设计了一些简单的测试代码(代码解读详见注释):

from calculator import *  # 导入目标模块
import unittest  # 导入unittest包


class TestCount(unittest.TestCase):
   #  测试代码写在一个测试类里面

   def test_add(self):
       # 我们要测的是一个add函数,他传入两个参数
       x = 5
       y = 6
       # 输入测试数据
       res = add(x, y)  # 将数据传递给被测函数,然后将结果存在res中
       self.assertEqual(res, 11)  # 使用断言判断res的值是否等于期待的值(这里期待为11)
       # 如果res的值等于期待的值,则测试通过,反之测试失败

   def test_substract(self):
       # 这是另一个测试代码,使用简写的方式将第一二步合在一起
       res = substract(11, 6)
       self.assertEqual(res, 5)
 以上代码只是用来介绍如何使用unittest,测试用例设计得比较随意。实际上测试用例设计需要考虑很多,要通过测试用例来证明目标代码的功能健全,所以对于一个简单的相加函数而言,这样的测试用例略显简单了。详细的测试用例设计小编以后会继续分享,关注W3C技术头条,学习如何编写更好的测试用例!
python作为一种代码易于理解的语言,实际上单元测试只在比较正规和大型的项目上会比较常见,unittest的更常见用法是与selenium集成为一个测试框架,由unittest提供比较好的用例管理和断言,由selenium进行功能测试。这时候unittest已经不算是单元测试工具了(是用例管理工具)。

以上就是“python单元测试如何写”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI