单元测试

unittest单元测试框架

耗尽温柔 提交于 2020-04-02 15:06:13
Python必会的单元测试框架 —— unittest 2016年10月27日 12:52:37 标签: python / 单元测试 / 框架 / 自动化测试 / unittest 17621 用Python搭建自动化测试框架,我们需要组织用例以及测试执行,这里博主推荐Python的标准库——unittest。 unittest是xUnit系列框架中的一员,如果你了解xUnit的其他成员,那你用unittest来应该是很轻松的,它们的工作方式都差不多。 unittest核心工作原理 unittest中最核心的四个概念是:test case, test suite, test runner, test fixture。 下面我们分别来解释这四个概念的意思,先来看一张unittest的静态类图(下面的类图以及解释均来源于网络, 原文链接 ): 一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。 而多个测试用例集合在一起,就是TestSuite,而且TestSuite也可以嵌套TestSuite。

angularJS学习笔记之——搭建学习环境

你。 提交于 2020-03-31 04:37:44
学习AngularJS已经好几天了,从今天开始学习AngularJS环境搭建。 无论是Mac、 Linux 或Windows环境中,您均可遵循本教程学习编程。 第一步:安装Git Git是什么呢? Git是版本控制系统,类似与svn,管理文件变化的历史,方便恢复到以前的修改。 你可以从 http://git-scm.com/download 下载和安装 Git 。 去github.com注册一个账号--创建仓库; git简单的配置 配置提交代码的信息,例如是谁提交的代码之类的。 git config –global user.name BattleHeaert 这里是设置提交代码的人的名称 git config –global user.email github @126.com 这里是设置提交代码的人的邮箱 github上的仓库内容就到本地文件夹里, 一旦你安装完Git,你应该就有git命令行工具了。你可能用到的主要的命令是: git clone ... :克隆一个远程仓库到你的本地电脑 git checkout ... :检出一个特定的分支或者标记版本 如新建一文件,a.txt 右击点击git bash here 执行命令 cd text (text 是github里的仓库)转换成本地仓库 git add a.txt(提交) git commit(提交写注释) 写注释有4点:

springboot 集成单元测试

谁都会走 提交于 2020-03-28 20:20:49
官网参考地址 1. 添加依赖 <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> 添加完依赖以后如果POM文件中报错,类型 Failure to transfer org.hamcrest:hamcrest-core:jar:1.3 .... was chached in the local repository 这是说在本地有缓存,把本地repository里对应的包删除掉,然后右键项目->maven->update project,报哪个包的错就删掉那个包。 造成这个错误的原因是对应的包下存在有 .lastupdated文件,删掉这些文件就可以。 stackoverflow 上有类似解决办法。 2.简单JAVA测试 在方法上加@Test注解,run as Junit即可 package UtilitiesTest; import org.junit.Assert; import org.junit.Test; public class SimpleJavaTest { @Test public void EquelTest(){

构建之法阅读笔记03

让人想犯罪 __ 提交于 2020-03-28 11:47:46
单元测试对代码质量的影响 1.(过去的做法) 记得大一大二写程序的时候,从来都不写单元测试,现在去分析当时的心理,可能出于三个原因。第一,当时写代码的水平非常low,当然现在也挺low的,不过现在是大三了,更何况在上《软件工程》,编写代码的水平较以前肯定会有很大的提高。大一大二的时候,可能当时老师布置下任务以后,等到老师检查的时候差不多才刚刚把任务完成,来不及写单元测试就需要向老师展示结果了,这是第一个原因。第二个原因则是不敢写单元测试,以前写程序的时候往往用一组特殊的数据去验证程序的正确性,只要这组数据能让程序得到正确的结果,那就代表自己写的这个程序过关了,从未想过多用几组数据去测试一下,也不敢用别的数据去测试,因为一换数据就有可能导致程序出错,正是这种害怕程序出错的心理,让我的编程水平在很长的一段时间内都处于一个停滞不前的状态。第三个原因则是不会写单元测试,过去老师对我们的要求就是能实现程序应有的功能,所谓的测试也就只是多用几组数据去测试一下程序的结果,从来不会单独的写一个小程序从多方面的角度去验证程序。 因此,真正学习了单元测试并在实际的编程中使用单元测试时,才发现,单元测试是保证代码质量的有效手段。所谓的单元测试其实就是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为

解决sonar单元测试覆盖率为0的问题

社会主义新天地 提交于 2020-03-26 11:07:29
3 月,跳不动了?>>> pom.xml中添加jacoco插件 <plugin> <groupId> org.jacoco </groupId> <artifactId> jacoco-maven-plugin </artifactId> <version> 0.7.9 </version> <configuration> <classDumpDir> target/classes </classDumpDir> <includes> <include> com///** </include> </includes> </configuration> <executions> <execution> <id> default-prepare-agent </id> <goals> <goal> prepare-agent </goal> </goals> </execution> <execution> <id> default-prepare-agent-integration </id> <goals> <goal> prepare-agent-integration </goal> </goals> </execution> <execution> <id> default-report </id> <goals> <goal> report </goal> </goals>

OCUnit测试框架

China☆狼群 提交于 2020-03-25 13:48:59
使用OCUnit测试框架 iOS单元测试框架 原则上,是否使用测试框架都不会影响单元测试结果,但是“工欲善其事,必先利其器”使用单元测试框架更便于我们测试和分析结果。 主要的iOS单元测试框架有: OCUnit,是开源测试框架,与Xcode工具集成在一起使用非常方便,测试报告以文本形式输出到输出窗口; GHUnit,是开源测试框架,它可以将测试报告以应用形式可视化输出到设备或模拟器上,也可以以文本形式输出到输出窗口;GHUnit可以测试OCUnit编写的测试用例; OCMock,是开源测试框架,它主要为测试提供Mock对象(伪对象)。 添加OCUnit到工程 添加OCUnit到工程中有两种方法,一种是在创建工程时添加,勾选“include Unit Tests”;另一种是在现有工程中添加“Cocoa Touch Unit Testing Bundle”Target来实现。下面我们详细介绍这两种添加过程。 1、创建工程时候勾选“include Unit Tests” 该种方式添加的单元测试属于应用测试(Application Testing)。在创建一个工程时,如果采用“Single View Application”模板,在选项中勾选“include Unit Tests”即可在工程中添加OCUnit框架。 工程创建完,在导航面板中会多一个PITaxTests组(<工程名

构建之法阅读笔记02

假如想象 提交于 2020-03-23 06:12:35
利用这周和上周的时间把《构建之法》前三章读完了,在阅读过程中发现了很多我未曾了解的内容。   从中我学到了很多新词,比如书中“你的RP是由你的程序质量决定的”这句话中的RP指的是绩效比率(rate of performance) 是指在项目或者活动周期的给定时间内,实际完成的工作对计划完成的工作的比率。   单元测试是我学到的较受益的知识,单元测试对于如何能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的、量化的保证。是一个很有效的解决方案。 在以后的开发过程中更要着手建立自己的代码库,能大大提高开发效率   回归测试也很重要,我以前也遇到过这种情况,本来某段代码没问题,但是在此代码上加入一些内容后,此段代码就出现了问题。这就体现了回归测试的重要性。   第三章说了软件工程师的成长。一个人的成长是多方面的,软件工程师也是一样。我们要一直补充自己,提升自己,在团队中除了展现自己的能力以外,还要和其他人友好分工合作,毕竟是一个团队。   下面说说个人感受部分,以前编写程序时单元测试我很少做,总是把整个程序编完了才去进行测试检验。阅读完第二章我认识到这样其实不好,因为我现在编的程序都是一些小程序,如果出现问题,比较容易找到问题处,但以后编的程序都是一些大型程序,如果不进行单元测试的话,出现问题很难解决。所以,从现在开始我编程时应该注意单元测试

Junit单元测试多线程的问题

旧城冷巷雨未停 提交于 2020-03-23 05:33:02
今天下午很快完成了一个接口的监控功能,然后屁颠屁颠地用Junit开始单元测试。然后我就开始陷入崩溃的边缘... 监控结束后需要将监控结果以邮件的形式发送给运营的小伙伴维护,前面测试还是很顺利,到了开多线程发邮件时就不行了, 程序也不报错,也接收不到邮件。然后改代码再测试,再冥思一会儿,再改再测试,还是无果,最后选择度娘一下,结论是: Junit单元测试不支持多线程 然后 ,整个人都不好了...浪费了我好多时间,就是因为这个!!! 虽然知道了结果,但是笔者还是需要亲自验证一下。 /** * @Title: TestDoWork.java * @Describe: * @author: Mr.Yanphet * @Email: mr_yanphet@163.com * @date: 2016年8月15日 下午5:50:03 * @version: 1.0 */ public class TestDoWork { class DoWork implements Runnable { @Override public void run() { for (int i = 0; i < 10000; i++) { long milliSecond = System.currentTimeMillis(); System.out.println("i=" + i + ",milliSecond=

angularJS学习笔记之——搭建学习环境

亡梦爱人 提交于 2020-03-23 05:05:58
转载自 http://blog.csdn.net/u014007037/article/details/46670519 从今天开始,开始学习 AngularJS 。 学习第一步是需要搭建一个学习和 测试 的环境,现在就开始环境的搭建。 无论是Mac、 Linux 或Windows环境中,您均可遵循本教程学习编程。 第一步:安装Git 你可以从 http://git-scm.com/download 下载和安装 Git 。一旦你安装完Git,你应该就有git命令行工具了。你可能用到的主要的命令是: git clone ... :克隆一个远程仓库到你的本地电脑 git checkout ... :检出一个特定的分支或者标记版本 第二步:下载 angular-phonecat 通过下面的命令克隆存在GitHub上的 angular-phonecat仓库 git clone --depth=14 https://github.com/angular/angular-phonecat.git 这个命令会在你的本地电脑上创建 angular-phonecat 目录。 --depth=14 选项只是告诉Git下去最新的14次提交。这样会让下载更小更快。 进入到 angular-phonecat 目录。 cd angular-phonecat 这里提示下,从现在开始

java单元测试(使用junit)

放肆的年华 提交于 2020-03-21 23:38:29
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),供Java开发人员编写单元测试之用。 1、概述   Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。   Junit本质上是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用Junit进行自动测试了。   由于Junit相对独立于所编写的代码,可以测试代码的编写可以先于实现代码的编写,XP 中推崇的 test first design的实现有了现成的手段:用Junit写测试代码,写实现代码,运行测试,测试失败,修改实现代码,再运行测试,直到测试成功。以后对代码的修改和优化,运行测试成功,则修改成功。   Java 下的 team 开发,采用 cvs(版本控制) + ant(项目管理) + junit(集成测试) 的模式时,通过对ant的配置,可以很简单地实现测试自动化。   对不同性质的被测对象,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧,以后慢慢地分别讲叙。以下以Class测试为例讲解,除非特殊说明。 2、下载安装 去Junit主页下载最新版本3.8.1程序包junit