百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

单元测试框架的选择

off999 2025-05-21 15:45 3 浏览 0 评论

今天给大家介绍单元测试的概念,以Python语言为基础,带你了解如何选择单元测试框架。

单元测试

1、定义

单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类。

2、为什么要做单元测试

从“基础元件”开测,单元测试对象是代码,以函数或类为单位,完成基础测试,在代码封装成“功能”后,更容易定位功能上出现的问题

3、单元测试用例

通常来讲,单元测试的用例是一个“输入数据”和“预计输出”的集合。 你需要针对确定的输入,根据逻辑功能推算出预期正确的输出,并且以执行被测试代码的方式进行验证,用一句话概括就是“在明确了代码需要实现的逻辑功能的基础上,什么输入,应该产生什么输出”。

4、几个概念

驱动代码、桩代码、Mock代码驱动代码(Driver)指调用被测函数的代码,在单元测试过程中,驱动模块通常包括调用被测函数前的数据准备、调用被测函数以及验证相关结果三个步骤。驱动代码的结构,通常由单元测试的框架决定。

桩代码(Stub)是用来代替真实代码的临时代码。 比如,某个函数A的内部实现中调用了一个尚未实现的函数B,为了对函数A的逻辑进行测试,那么就需要模拟一个函数B,这个模拟的函数B的实现就是所谓的桩代码。桩代码的应用首先起到了隔离和补齐的作用,使被测代码能够独立编译、链接,并独立运行。同时,桩代码还具有控制被测函数执行路径的作用。

Mock代码和桩代码非常类似,都是用来代替真实代码的临时代码,起到隔离和补齐的作用。但是很多人,甚至是具有多年单元测试经验的开发工程师,也很难说清这二者的区别。

在作者看来,Mock代码和桩代码的本质区别是:测试期待结果的验证(Assert and Expectiation)。

对于Mock代码来说,我们的关注点是Mock方法有没有被调用,以什么样的参数被调用,被调用的次数,以及多个Mock函数的先后调用顺序。所以,在使用Mock代码的测试中,对于结果的验证(也就是assert),通常出现在Mock函数中。

对于桩代码来说,我们的关注点是利用Stub来控制被测函数的执行路径,不会去关注Stub是否被调用以及怎么样被调用。所以,你在使用Stub的测试中,对于结果的验证(也就是assert),通常出现在驱动代码中。

在Python中,我们常用的单元测试框架是unittest、pytest,相比之下pytest更具有学习价值,原因是pytest代码更简洁。而且pytest框架结合selenium做UI自动化也比较方便。可能单元测试大家做的不是很多,因为单元测试基本都是开发的同事在做,但是这并不妨碍大家学习pytest框架。

不同阶段

自动化分类

1、代码开发阶段——单元测试【pytest、unittest】

2、开发完成——api测试即接口测试

3、页面开发完成稳定后——UI自动化【selenium】

4、上线前性能、安全、兼容性测试【Jmeter】

如果对接口、性能、自动化测试、面试经验交流等感兴趣的,可以关注我的头条号,我会不定期的发放免费的资料,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。欢迎分享,欢迎评论,欢迎转发。需要资料的同学可以关注小编+转发文章+私信【测试资料】

相关推荐

怎么样才算是精通 Python?

程序员写过简历的都知道,先说精通->后说熟悉->最后说了解,要把精通放在最前面。But很少人会说自己精通Python,这也是因为Python的应用领域是真的多,最好还是说自己精通的领域,...

Python进阶-day21:复习与小项目

学习目标复习内容:巩固OOP、异常处理、文件操作、模块化等知识。高级概念:设计模式:单例模式(确保账户唯一性)、工厂模式(创建交易对象)。上下文管理:管理文件操作和数据库连接。元编程:动态添加方...

Python项目创建全流程指南

以下是创建Python项目的超详细步骤指南,涵盖从环境配置到项目部署的全流程:一、环境准备安装PythonO官网下载:访问python.org下载最新稳定版O验证安装:终端输入pyth...

测试开发必知必会:Pytest框架实战

每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试码同学抖音号:小码哥聊软件测试应用场景:pytest框架可以解决我们多个测试脚本一起执行的问题...

十分钟带你看懂——Python测试框架之pytest最全讲

pytest特短pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:简单灵活,容易上手支持参数化能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appn...

1次订单系统迁移,头发都快掉完了...

本文主要介绍知乎订单系统后端语言栈的转型升级过程,包括其间踩过的一些坑和遇到的一些问题。一来是想通过本篇文章为其他应用服务转型提供借鉴经验,二来是总结对于订单系统的理解。迁移背景随着知乎整体技术栈的变...

Python之Pytest测试框架

前言:和大家简单介绍一下如何利用Python的Pytest测试框架来进行UI、接口测试,更多学习内容和资料可以查看:https://docs.qq.com/doc/DWmxXaVdLUlVyTkZL1...

接口自动化测试:Pytest测试框架(一)

背景:大多数公司使用pytest来进行服务端接口用例的管理,接下来跟随我去开启pytest之旅吧!pytest简介基于python的单元测试框架,修饰符功能强大,用例跳过skip和reruns失败用例...

单元测试框架的选择

今天给大家介绍单元测试的概念,以Python语言为基础,带你了解如何选择单元测试框架。单元测试1、定义单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最...

掌握Python3的秘密:10个鲜为人知的技巧和最佳实践

Python3是一种功能强大且易于学习的编程语言,被广泛应用于各种领域。无论你是初学者还是有经验的开发者,掌握一些鲜为人知的技巧和最佳实践,都能大大提升你的编码效率和代码质量。本文将深入介绍10个...

10个Python进阶问题

1.解释Python支持的文件处理模式。Python中有三种文件处理模式:只读(r)、只写(w)、读写(rw)和追加(a)。因此,如果您以读取模式打开文本文件。前面的模式变为“rt”表示只读,“wt...

Python进阶-day19: 测试与调试

一、课程目标理解测试的重要性:掌握软件测试的基本概念,了解单元测试在提高代码质量和可维护性中的作用。学习测试框架:熟悉Python中两种主流测试框架unittest和pytest的使用方法,理解它们的...

Nose,一款多功能灵活测试的Pythonl库

Nose库概述Nose是一个用于Python单元测试的第三方库,旨在简化和扩展Python自带的unittest框架.它提供了更多功能和灵活性,使得编写和运行单元测试变得更加方便.安装与使用#首先安装...

Python+selenium自动化之判定元素是否存在

在测试过程中,我碰到过这类的问题,使用find_element却找不到某个元素而产生异常,这就需要在操作某个元素之前判定该元素是否存在,而selenium中没有判定元素是否存在的方法,或者判定相同的元...

测试老鸟浅谈unittest和pytest的区别

一、unittest#MyFunction.pydefadd(a,b):returna+b1.unittest单元测试#单元测试.py"""...

取消回复欢迎 发表评论: