今天给你们介绍单元测试的概念,以Python语言为基础,带你了解如何选择单元测试框架。面试
单元测试
一、定义
单元测试是指,对软件中的最小可测试单元在与程序其余部分相隔离的状况下进行检查和验证的工做,这里的最小可测试单元一般是指函数或者类。api
二、为何要作单元测试
从“基础元件”开测,单元测试对象是代码,以函数或类为单位,完成基础测试,在代码封装成“功能”后,更容易定位功能上出现的问题安全
三、单元测试用例
一般来说,单元测试的用例是一个“输入数据”和“预计输出”的集合。 你须要针对肯定的输入,根据逻辑功能推算出预期正确的输出,而且以执行被测试代码的方式进行验证,用一句话归纳就是“在明确了代码须要实现的逻辑功能的基础上,什么输入,应该产生什么输出”。框架

若是对软件测试、接口测试、自动化测试、面试经验交流感兴趣能够加软件测试交流:1085991341,会有不按期的发放免费的资料连接,还会有同行一块儿技术交流。函数
四、几个概念
驱动代码、桩代码、Mock代码
驱动代码(Driver)指调用被测函数的代码,在单元测试过程当中,驱动模块一般包括调用被测函数前的数据准备、调用被测函数以及验证相关结果三个步骤。驱动代码的结构,一般由单元测试的框架决定。
性能
桩代码(Stub)是用来代替真实代码的临时代码。 好比,某个函数A的内部实现中调用了一个还没有实现的函数B,为了对函数A的逻辑进行测试,那么就须要模拟一个函数B,这个模拟的函数B的实现就是所谓的桩代码。桩代码的应用首先起到了隔离和补齐的做用,使被测代码可以独立编译、连接,并独立运行。同时,桩代码还具备控制被测函数执行路径的做用。单元测试
Mock代码和桩代码很是相似,都是用来代替真实代码的临时代码,起到隔离和补齐的做用。可是不少人,甚至是具备多年单元测试经验的开发工程师,也很难说清这两者的区别。学习
在做者看来,Mock代码和桩代码的本质区别是:测试期待结果的验证(Assert and Expectiation)。测试
对于Mock代码来讲,咱们的关注点是Mock方法有没有被调用,以什么样的参数被调用,被调用的次数,以及多个Mock函数的前后调用顺序。因此,在使用Mock代码的测试中,对于结果的验证(也就是assert),一般出如今Mock函数中。spa
对于桩代码来讲,咱们的关注点是利用Stub来控制被测函数的执行路径,不会去关注Stub是否被调用以及怎么样被调用。因此,你在使用Stub的测试中,对于结果的验证(也就是assert),一般出如今驱动代码中。
在Python中,咱们经常使用的单元测试框架是unittest、pytest,相比之下pytest更具备学习价值,缘由是pytest代码更简洁。并且pytest框架结合selenium作UI自动化也比较方便。
可能单元测试你们作的不是不少,由于单元测试基本都是开发的同事在作,可是这并不妨碍你们学习pytest框架。
不一样阶段
自动化分类
一、代码开发阶段——单元测试【pytest、unittest】二、开发完成——api测试即接口测试三、页面开发完成稳定后——UI自动化【selenium】四、上线前性能、安全、兼容性测试【Jmeter】以上内容但愿对你有帮助,有被帮助到的朋友欢迎点赞,评论。