19.unittest原理(代码片段)

yangyangchunchun yangyangchunchun     2023-03-08     127

关键词:

单元测试
单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的
被测功能模块。
单元测试框架

 技术图片

 

 

 

TestCase: 测试用例类

此类的一个实例,就是一个测试用例。
一个完整的测试用例包括: 包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。

TestSuite:测试套件类

对多个测试用例的整合到一起,打包进行测试,就用到了TestSuite
实例化一个TestSuite对象,可以添加上多个测试用例。

TestLoader: 测试用例加载类

加载TestCase实例(即测试用例)到TestSuite实例中,
所以,这个类里面有很多加载的方法,例如:几个loadTestsFrom__()方法

TextTestRunner:测试用例运行类

实例化出此类的一个对象,然后把TestSuite实例做为参与传进去,就可以运行测试了

TextTestResult: 测试用例结果类

TextTestRunner的运行结果保存在TextTestResult中,
包括运行了多少测试用例,成功了多少,失败了多少等信息

fixture:

对一个测试用例环境的搭建和销毁,是一个fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。
(1)比如说在这个测试用例中需要访问数据库,那么可以在setUp()中建立数据库连接以及进行一些初始化,在tearDown()中清除在数据库中产生的数据,然后关闭连接。注意tearDown的过程很重要,要为以后的TestCase留下一个干净的环境。
(2)关于fixture,还有一个专门的库函数叫做fixtures,功能更加强大,以后会介绍到。

 

unittest运行原理

 

技术图片

 

技术图片

 

总结:
(1)最终主程序先执行哪个类、是按照这个类的名字字母、以及数据排序的
(2)最终,先运行哪个方法,是按照某类中,方法的名字、数字排序的
(3)主程序中先加载哪个方法,或者后加载哪个方法,在unittests运行的模式下,没有任何作用
(4)只有当使用普通模式下运行这个程序,才会按照顺序去执行。 














markdownspringboot自动配置原理(代码片段)

查看详情

markdown通信原理课程笔记(代码片段)

查看详情

text哈希原理-基础篇(代码片段)

查看详情

text了解redux原理(代码片段)

查看详情

扫描器原理(代码片段)

扫描的分解动作 1.统一沟通语言 2.发出刺激 3.受到刺激的反馈 4.通过对比刺激和反馈完成扫描 查看详情

扫描器原理(代码片段)

扫描的分解动作 1.统一沟通语言 2.发出刺激 3.受到刺激的反馈 4.通过对比刺激和反馈完成扫描 查看详情

扫描器原理(代码片段)

扫描的分解动作 1.统一沟通语言 2.发出刺激 3.受到刺激的反馈 4.通过对比刺激和反馈完成扫描 查看详情

wpfmodernui主题更换原理(代码片段)

WPFModernUI主题更换原理一.如何更换主题?二.代码分析代码路径:FirstFloor.ModernUI.App/Content/SettingsAppearance.xaml1.关键XAML代码<ComboBoxGrid.Row="1"Grid.Column="1"ItemsSource="BindingThemes"SelectedItem="BindingSelected 查看详情

$nexttick原理(代码片段)

//packages/weex-vue-framework/factory.js//Herewehaveasyncdeferringwrappersusingmicrotasks.//In2.5weused(macro)tasks(incombinationwithmicrotasks).//However,ithassubtleproblemswhenstateischangedrightbef 查看详情

reentrantlock原理详解(代码片段)

文章目录ReentrantLock原理:ReentrantLock简介:AQS简介ReentrantLock原理ReentrantLock实现方法探究获取锁:voidlock()方法voidlockInterruptibly()方法booleantryLock()方法booleantryLock(longtimeout,TimeUnitunit)方法释放锁 查看详情

reentrantlock原理reentrantreadwritelock原理(代码片段)

一、ReentrantLock原理ReentrantLock是一个可重入的独占锁,同时只能有一个线程可以获取该锁,其他获取该锁的线程会被阻塞而放入该锁的AQS阻塞队列里面。ReentrantLock最终是使用AQS来实现的,并且根据参数来决定其内部是一个公平锁... 查看详情

countdownlatch实现原理(代码片段)

CountDownLatch的原理这个类一般的应用场景为:一个线程等待另外N(N>=1)个线程的事情搞完了,自己再搞事情。具体应用代码大致如下:publicclassCountDownLatchTestprivatestaticfinalintTHREAD_COUNT=10;privateCountDownLatchlatch=newCountDownLatch(THREAD_COUNT... 查看详情

整理:springioc实现原理(代码片段)

SpringIOC实现原理目录SpringIOC实现原理BeanFactoryApplicationContextBeanDefinitionIOC容器的初始化XmlBeanFactroyFileSystemXmlApplicationContext IOC容器的初始化过程BeanDefinition在IOC容器中的注册依赖注入doGetBean():有以下问题:doCreateBe 查看详情

理解爬虫原理(代码片段)

1.简单说明爬虫原理  通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频)爬到本地,进而提取自己需要的数据,存放起来使用。  2.理解爬虫开发过程1).简要说明浏览器工作原理... 查看详情

springboot核心原理(代码片段)

SpringBoot核心原理spring-boot-starter-xxx 方便开发和配置1、没有depoysetuptomcat2、xml文件里面的没有没有了@SpringBootApplication//注解publicclassSpringbootdemo1Application publicstaticvoidmain(String[]args)//严格意义上执行的是这块代码 查看详情

jdk动态代理原理(代码片段)

 在介绍JDK动态代理原理之前,先来一个网上比较经典的关于jdk动态代理的例子:packagecjj.proxy.jdk;/***@authorchenjunjie*@since2018-05-09*/publicinterfaceHelloWorldvoidsayHello(Stringname);-----------------------------分割线---------- 查看详情

mybatis运行原理(代码片段)

整体运行原理图1、获取sqlSessionFactory对象:解析文件的每一个信息保存在Configuration中,返回包含Configuration的DefaultSqlSessionFactory;注意:【MappedStatement】:代表一个增删改查的详细信息2、获取sqlSession对象返回一个DefaultSQlSession对... 查看详情

xss原理及代码分析(代码片段)

...篇文章:XSS(跨站脚本攻击)简单讲解如果想要了解SQL注入原理的可以看我的这两篇文章:SQL注入原理及代码分析(一)SQL注入原理及代码分 查看详情