单元测试与powerMock
单元测试与powerMock
lxlmycsdnfree
脑科学爱好者,物理爱好者,计算机从业者
展开
-
surfire 单元测试 使用了mock字节码再生和注入, UseSplitVerifier防止字节码校验
使用了mock字节码再生和注入,那么在jacoco 分析的时候,会字节码校验,会报字节码不合规问题,编码问题。在surfire 中配置: org.apache.maven.plugins maven-surefire-plugin 2.19.1 -noverify -XX:-UseSplitVerifier原创 2017-10-19 21:21:06 · 1049 阅读 · 0 评论 -
EasyMock 使用方法与原理剖析
Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。编写自定义的 Mock 对象需要额外的编码工作,同时也可能引入错误。EasyMock 提供了根据指定接口动态构建 Mock 对象的方法,避免了手工编写 Mock 对象。本文将向您展示如何使用 EasyMock 进行单元测试,并对 EasyMock 的原转载 2018-02-02 20:25:13 · 209 阅读 · 0 评论 -
junit4.0/4.9与testng6.4 pom依赖对比
junit4.0 pom文件: 4.0.0 junit junit 4.0 http://junit.org junit4.9 pom文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2018-01-28 18:53:45 · 483 阅读 · 0 评论 -
surefire 拉起 junit 单元测试类 源码阅读(二)
根据上一篇blog,看到日志1流程:surefire.ForkedBooter -> ForkedBooter.runSuitesInProcess-> ForkedBooter.invokeProviderInSameClassLoader-> surefire.junit4.JUnit4Provider.invoke -> executeTestSet -> ex...原创 2018-02-08 10:22:12 · 294 阅读 · 0 评论 -
junit5 与 surefire 对接使用
使用junit5,git 上有说明:https://github.com/happymff/junit5对于使用junit5 新提供了一些依赖jarjunit-jupiter-apiIntroduce config param for default test instance lifecycle6 months agojun原创 2018-02-05 16:05:41 · 1540 阅读 · 0 评论 -
surefire 拉起 junit 单元测试类 源码阅读(三)
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.re...原创 2018-02-11 14:29:11 · 457 阅读 · 0 评论 -
Testng 测试框架源码阅读(一)
首先看下 maven-surefire 通过testng拉起单测,执行异常的日志(有助于我们理解testng中调用关系):java.lang.instrument.IllegalClassFormatException: Error while instrumenting class com/suning/gcps/newutils/invoice/InvoiceSendTypeEnum.原创 2018-02-07 15:19:32 · 3347 阅读 · 0 评论 -
Testng 测试框架源码阅读(二)
surefire接着调入testng中的方法,testNG.run -> runSuites -> runSutiesLocally -> runSuitesSequentially-> SuiteRunnerWorker.run -> runSuites-> SuiteRunner.run -> privateRun -> invokeTestMethods ->test原创 2018-02-07 16:04:30 · 1458 阅读 · 0 评论 -
surefire 拉起testng单元测试类的源码流程阅读(一)
这里分析是基于2.5surefire 版本。首先拿surefire 拉起单元测试报错日志 分析:Caused by: java.io.IOException: Error while instrumenting class com/suning/gcps/newutils/string/StringUtils. at org.jacoco.agent.rt.internal_6da5原创 2018-02-07 19:08:27 · 1852 阅读 · 0 评论 -
surefire 拉起testng单元测试类的源码流程阅读(二)
这里是基于surefire 2.19.1版本分析的。还是根据surefire 拉起单元测试执行报错的日志展示的执行过程分析java.lang.instrument.IllegalClassFormatException: Error while instrumenting class com/suning/imp/scheduler/ActivityDoneMonitorSchedul原创 2018-02-07 19:55:29 · 962 阅读 · 0 评论 -
Junit 与 powermock 结合执行过程源码阅读
还是根据执行过程powermock 报错的日志分析:java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAc原创 2018-02-07 20:44:25 · 289 阅读 · 0 评论 -
surefire 拉起 junit 单元测试类 源码阅读(一)
根据surefire 拉起Junit单元测试类 输出的报错日志 跟踪执行过程:日志1:java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(N...原创 2018-02-08 10:06:55 · 679 阅读 · 0 评论 -
使用powermock 测试static 方法,jacoco统计覆盖率问题
使用powermock 对private 和static 方法进行mock 测试,public class LogUtil { public static BaseAuditLog getLogBean(String operContent){ return null; } public static void saveLo...原创 2018-06-11 15:40:10 · 5068 阅读 · 2 评论 -
[ERROR] org.testng.TestNGException:Cannot find class in classpath:
我的报错信息如下:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project ma-admin-web: Execution default-test of goal org.apache.maven.plugins:m原创 2018-01-17 15:50:33 · 2530 阅读 · 1 评论 -
单元测试之Mockito与PowerMock
什么是Mock?在单元测试中,我们往往想去独立地去测一个类中的某个方法,但是这个类可不是独立的,它会去调用一些其它类的方法和service,这也就导致了以下两个问题:外部服务可能无法在单元测试的环境中正常工作,因为它们可能需要访问数据库或者使用一些其它的外部系统。我们的测试关注点在于这个类的实现上,外部类的一些行为可能会影响到我们对本类的测试,那也就失去了我们进行单测的意义。为了解转载 2018-01-22 21:09:00 · 705 阅读 · 0 评论 -
surfire单元测试添加jvm参数
org.apache.maven.plugins maven-surefire-plugin 2.19.1 ${project.build.directory}/jacoco.exec ${argLine} -XX:NewSize=128m -XX:MaxNewSize=512m -XX:PermSize=128m -XX:MaxPermSize=768m 配置jvm 参原创 2017-10-22 13:55:43 · 2766 阅读 · 0 评论 -
单元测试 testng.xml load class not found
-->空格去掉!!!!!!!!!!!!原创 2017-10-27 16:03:52 · 475 阅读 · 0 评论 -
PoweMock集成Spring-test 测试静态方法 禁用字节码验证 -noverify -XX:-UseSplitVerifier
问题 我们使用Spring-test的时候使用如下的代码@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:springmvc-servlet-test.xml", "classpath:application-context-datasource-test.xml",转载 2017-10-13 10:40:11 · 1818 阅读 · 0 评论 -
java.lang.VerifyError: Expecting a stackmap frame at branch target
java.lang.VerifyError: Expecting a stackmap frame at branch target 51Exception Details: Location: com/suning/ospos/pushapi/controller/PushAuthController.$jacocoInit()[Z @4: ifnonnull Reason:原创 2017-09-26 11:14:20 · 3114 阅读 · 0 评论 -
使用mvn插件surefire 执行工程单元测试 出现OOM的解决分析
遇到surefire问题,最好是去官方文档看资料,看说明,因为网上关于surefire的使用经验几乎没有的。官方说明地址:http://maven.apache.org/plugins/maven-surefire-plugin/examples/system-properties.html在这篇文章的最末尾,可以看到….的配置,于是在单元测试的工程中加了插件的配置,如原创 2017-08-26 13:52:14 · 1872 阅读 · 0 评论 -
surefire单元测试 并发 提速
http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html这是官方地址parallel 这个参数可以说是很重要的参数,因为其控制并发执行的对象,基于它我们可以设置并发执行类,类中的方法或者测试集suits.The most原创 2017-09-07 21:05:34 · 3837 阅读 · 1 评论 -
surfire ${argLine} 参数报错
T E S T S-------------------------------------------------------Exception in thread "main" java.lang.NoClassDefFoundError: ${argLine}Caused by: java.lang.ClassNotFoundException: ${argLine} at java原创 2017-10-25 15:42:28 · 3924 阅读 · 0 评论 -
The forked VM terminated without saying properly goodbye VM crash or System.exit called?
[INFO] Final Memory: 66M/1214M[INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test原创 2017-11-07 11:30:23 · 7242 阅读 · 1 评论 -
Jmock 原理简单说明
在jmockit中,你可以使用MockUp来创建一个“fake”的实例,对某个方法指定自己的实现,而不是调用实际的方法。对于接口类型,需要这样调用:@Mockedprivate SomeInterface mockInstance;mockInstance = new MockUp() { ...}.getMockInstance();这个倒没有什么古怪的。估计原创 2017-11-04 17:47:32 · 4644 阅读 · 0 评论 -
junit与testng 分别和mockito 结合使用例子
pom文件 引入: org.testng testng 6.8.8 test使用junit:@RunWith(MockitoJUnitRunner.class) public class MockTest { @Before public void init() { MockitoAnnota原创 2018-01-22 16:11:03 · 1604 阅读 · 0 评论 -
执行单元测试 报TEST class 有不能识别字符
这是 test class 有特殊字符:使用nodepad++ 打开java文件,然后再把文件转下ISO8859-1,非法字符就露出来了,然后删掉转回UTF-8就可以了。这个非法字符,但是UTF-8看不到...原创 2018-06-11 09:29:02 · 331 阅读 · 0 评论