单元测试:TESTNG和powermock的使用】的更多相关文章

pom文件: <properties>        <testng.version>6.8</testng.version>        <powermock.version>1.6.5</powermock.version>    </properties> <dependency>            <groupId>org.testng</groupId>            <…
TestNG是另一种单元测试的framework,与JUnit的类似,这次Mix将使用它来撰写测试程序,大部分所引用的class package都一样,只差在JUnit与TestNG的字样,可以直接用搜寻取代字符串,快速替代掉,或是用IDE plugin直接转换成测试程序代码. 阅读全文>>…
在前面的文章中(Spring Boot 2 实践记录之 Powermock 和 SpringBootTest)提到了使用 Powermock 结合 SpringBootTest.WebMvcTest 来 Mock Service.Controller 中的 静态类和静态方法. 但此法有两个弊端,一是这样的单元测试运行速度慢,二是时不时会出现测试运行停顿的情况. 一个可选的方案就是将这些用在 Service.Controller 中的静态类和静态方法的引用,封装在普通 Bean 中,Service…
官网 Eclipse安装TestNG插件 与Junit相比 从Junit发展而来,开发者就是Junit小组的一个人 Test Suite不再需要硬编码,就像cf自动登录的脚本中一样,可以写到一个xml文件中 Eclipse或STS中需要安装TestNG插件 貌似在线安装网站经常不能用,从eclipse网站拖Install按钮到eclipse中同样经常不能用,可能是代理等问题.可以离线安装,去http://beust.com/eclipse下载 安装了插件后,就可以Run As或者Debug As…
直接进入正题: 1.TestNG的运行方式如下: With a testng.xml file 直接run as test suite With ant 使用ant From the command line 从命令行 IDE 直接在IDE中执行 在IDEA中直接运行的时候,需要说明的是:可以运行一个测试类,也可以单独运行一个测试的方法. 在IDEA里执行,只需要右键,点击 Run xxx 即可. 如果是在某一个方法的代码块里右键,出现的是 Run methodName ,即只运行当前的方法:…
0:Supported versions PowerMock version 1.7.0 and upper has experimental support of Mockito 2. A lot of issues are not resolved still. PowerMock uses internal Mockito API, but at least it possible to use both mocking framework together. PowerMock team…
单元测试不好搞阿,虽然从TDD角度出发,可测性强的代码很大程度上就代表着好的设计,但是有些情况也是没办法的,比如单例模式,比如Static方法,比如Final类,传统的Mock技术是没办法解决这些问题的,而如果单纯为了测性去修改代码,这会大大破坏代码的整体设计,所以开发不愿意搞单元测试,而测试人员更拿这不可测的代码束手无策. 好在,在Java领域,有了PowerMock! PowerMock简介 PowerMock使用自定义的类加载器和字节码操作技术,从而使得我们能够Mock: Static方法…
本文将简单介绍如何使用PowerMock和Mockito来mock1. 构造函数2. 静态函数3. 枚举实现的单例4. 选择参数值做为函数的返回值5. 在调用mock出来的方法中,改变方法参数的值 一点简要说明:Mockito其实已经可以满足大部分的需求,但是它的实现机制是使用cglib来动态创建接口的类的实例.但是这种实现方式不能用于构造函数和静态函数,因为那需要使用类的字节码(比如使用javassist). 所以我们才需要结合使用PowerMock. 1. mock构造函数, 如果有代码没有…
测试框架有很多,比如常用的 UI自动化测试框架 ①.java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine ②.python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine ③.python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlin…
概念 Jacoco:JaCoCo是一个开源的覆盖率工具,它针对的开发语言是java,其使用方法很灵活,可以嵌入到Ant.Maven中:可以作为Eclipse插件,可以使用其JavaAgent技术监控Java程序等等. 插桩:程序插桩,它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”,本质上就是进行信息采集的代码段,可以是赋值语句或采集覆盖信息的函数调用),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖…
Mock Final mockfinal相对来说就比较简单了,使用powermock来测试使用final修饰的method或class,比较简单,接口调用部分,还是service调用dao. 对于接口及场景这里就不细说. service层 具体代码示例如下: package com.rongrong.powermock.mockfinal; /** * @author rongrong * @version 1.0 * @date 2019/11/27 21:29 */ public class…
Awesome系列的Java资源整理.awesome-java 就是akullpp发起维护的Java资源列表,内容包括:构建工具.数据库.框架.模板.安全.代码分析.日志.第三方库.书籍.Java 站点等等. 经典的工具与库 (Ancients) In existence since the beginning of time and which will continue being used long after the hype has waned. Apache Ant - Build…
 JMETER接口性能测试方案 JMETER简介          JMeter可以用于测试静态或者动态资源的性能(文件.Servlets.Perl脚本.java对象.数据库和查询.ftp服务器或者其他的资源). JMeter用于模拟在服务器.网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况.你可 以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为. 场景介绍          被测dubbo服务…
SpringSide是以Spring Framework为核心的,Pragmatic风格的JavaEE应用参考示例,是JavaEE世界中的主流技术选型,较佳实践的总结与演示. 经过漫长的7个月和6个RC版本后,SpringSide 4.0的稳定版终于赶在黄石公园爆发前上画了.<一代宗师>还是留给外星人看吧. 整个SpringSide 4.0版的主要修改记录: DAO框架转用Spring Data JPA + Hibernate 4.x,同時增加MyBatis的演示. MVC框架转用Spring…
Awesome Java A curated list of awesome Java frameworks, libraries and software. Awesome Java Ancients Bean Mapping Build Bytecode Manipulation Cluster Management Code Analysis Code Coverage Compiler-compiler Configuration Constraint Satisfaction Prob…
简介 Jacoco是一个开源的覆盖率工具.Jacoco可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序.很多第三方的工具提供了对Jacoco的集成,如sonar.Jenkins等. 官网地址:http://www.eclemma.org/jacoco/ Jacoco包含了多种尺度的覆盖率计数器,包含指令级(Instructions,C0coverage),分支(Branches,C1coverage).圈复杂度(Cyc…
单元测试是开发中必不可少的一部分,是产品代码的重要保证. Junit和testNG是当前最流行的测试框架,Junit是使用最广泛的测试框架,有兴趣的话自己baidu一下. testNG基于Junit和Nunit,并引入了很多特性,使其更强大和更易于使用. 有兴趣的可以直接看一下官网:http://testng.org/doc/index.html 用maven可以很方便的构建测试框架. 在这里以maven为例搭建一个测试框架 编辑pom.xml引入必要的jar包 <properties> &l…
在进行使用的eclipse的进行开发的代码中,必然就会需要进行单元测试,在单元测试的情况提供较多的框架单元测试,例如使用junit单元测试,而在国外进行开发较好的单元测试,提供了较好的测试的报告,junit和testng是类似差别上不是很多,而testng提供了较多的功能. 进行常用的eclipse的开发的工具,进行到了eclipse的界面中之后,进行点击菜单中的"Help",弹出下拉菜单中进行选择为install new software的选项. 进入到了install的选项界面中,…
0.preliminary 环境搭建 Setup development environment Download the latest version of MRUnit jar from Apache website: https://repository.apache.org/content/repositories/releases/org/apache/mrunit/mrunit/. For example if you are using the Hadoop version 1.0…
1. 引言 在进行单元测试时,经常遇到被测方法依赖外部对象和环境,如需要数据库连接,网络通信依赖等,需要进行大量的初始化工作,这时可以采用powermock+mockito对被测对象进行模拟,通过录放的形式解决此类问题. Mockito 是一个针对 Java 的单元测试模拟框架,它与 EasyMock 和 jMock 很相似,都是为了简化单元测试过程中测试上下文 ( 或者称之为测试驱动函数以及桩函数 ) 的搭建而开发的工具. PowerMock 也是一个单元测试模拟框架,它是在其它单元测试模拟框…
TestNg TestNg 是java的一个自动化单元测试框架 参考:http://testng.org/doc/index.html 环境准备 既然是java 的自动化单元测试框架,就必须要有java的环境了,这里使用的编辑器是Eclipse,已经安装过TestNg 插件,如果环境准备好就可以开始了 代码实例 代码结构如图 新建一个java项目,之后添加一个TestNg类,之后会生成一个测试类,和一个xml文件 (如果发现TestNg编辑是出错,无法调用TestNg的标签函数,那么导入Test…
JUnit让开发人员了解测试的实用性,尤其是在单元测试这一模块上比任何其他测试框架都要简单明了.凭借一个相当简单,务实,严谨的架构,JUnit已经能够“感染”了一大批开发人员.TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便. 一:注解的使用 import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.t…
TestNG单元测试详解   by:授客 QQ:1033553122 1. 测试环境 2 2. 介绍 2 3. Annotation 2 4. testng.xml 3 4.1. 例1 3 4.2. 例2 5 4.3. 例3 5 4.4. 例4 9 5. 测试方法(Test method), 测试类(Test class),测试组(Test groups) 10 5.1. 测试方法(Test method) 10 5.2. 测试组(test groups) 10 5.2.1. 例1 10 5.2…
利用MyEclipse结合TestNG测试框架进行单元测试   by:授客 QQ:1033553122 测试环境 jdk1.8.0_121 myeclipse-10.0-offline-installer-windows.exe TestNG插件 org.testng.eclipse_6.8.6.20130607_0745 代码组织结构 代码示例 Humman.java存放了需要进行测试的类 package mypackage; public class Humman { String name…
1.Mock是什么? 通过提供定制的类加载器以及一些字节码篡改技巧的应用,PowerMock 现了对静态方法.构造方法.私有方法以及 Final 方法的模拟支持,对静态初始化过程的移除等强大的功能. 2.为什么要用PowerMock? 举个例子:当测试单机应用的时候,直接写Junit单元测试即可,但当涉及到多个服务时,你写好了你的服务,其它服务尚未完成,这时候就需要模拟调用远程服务,也就需要Mock. 3.Mock的流程 简单来说,模拟测试一共分为4步:数据准备.打桩(Mock).执行.验证.…
定位 本文适合于不愿意手工编写而想自动化生成DAO单元测试的筒鞋.成果是不能照搬的,但其中的"创建模板.填充内容.自动生成"思想是可以复用的.读完本文,可以了解 Python 读取配置文件.替换字符串相关的知识点. 在使用 jtester+unitils+testng 做数据库接口的单元测试框架中, 常常需要编写一些 wiki 及 DAOTest java 文件,  比如: public class XXXDefaultDAOTest extends BaseRegionDbDAOTe…
由于注册时,需要对输入的密码进行加密,使用到了 UUID.sha1.md 等算法.在单元测试时,使用到了 Powermock,记录如下. 先看下加密算法: import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.digest.DigestUtils; import java.util.UUID; public class Encrypt { /** * 密码加密 * @param passwor…
为什么用它 建议使用 TestNG 作为 Java 项目的主要单元测试框架,因为 TestNG 在参数化测试.依赖测试以及套件测试(组)方面功能更加强大.TestNG 意味着高级的测试和复杂的集成测试.它更加的灵活,特别是对大的套件测试.另外,TestNG 也涵盖了 JUnit4 的全部功能.那就没有任何理由使用 Junit了 更多细节,可以参见:JUnit 4 与 TestNG 对比 解决什么问题 断言结果 期望异常 进行分组 多线程测试 依赖测试 有测试可视化结果 即:它即能测试单元测试,也…
在Java程序的单元测试中常用的mock工具有Mockito和EasyMock.但是这两种mock工具都无法实现对静态.final.私有方法或类的mock.因此有了功能强大的PowerMock工具.PowerMock并不是一个独立.全新的工具而是在Mockito和EasyMock的基础上进行的扩展,它分别有针对Mockito级EasyMock的扩展实现.本文主要介绍PowerMock的常见用法: 1.pom依赖 <dependency> <groupId>junit</gro…
转:http://blog.csdn.net/yys79/article/details/66472797 最近,项目中频繁用到dubbo,而且java工程用引用了几十个关联系统的服务(如用户认证,基础服务,客户平台).这些服务都是dubbo服务,对我们仅提供了一个接口,服务通过zookeeper注册,并给我们提供服务.我们的项目都是基于spring的.spring集成dubbo,就可以对这些外部服务进行注入和使用了. 但是对于单元测试来说却出现了难题:领域模型的测试不是问题,主要都是自己的代码…