Maven项目中引入JMockit的步骤
1 创建一个标准的Maven工程,Pom中切记要选择 <packaging>war</packaging> war或者jar均可,但是不能是pom,否则maven test命令只会 Building工程。这个是我搭建测试项目遇到的坑
2 引入JMockit依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!--<scope>test</scope>-->
</dependency>
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.38</version>
<!--<scope>runtime</scope>-->
</dependency>
3 引入maven-surefire-plugin,否则Jmockit测试跑完后,并不会生成HTML测试覆盖率的报告
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<!-- 与maven test阶段绑定 -->
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<systemPropertyVariables>
<coverage-output>html</coverage-output>
<coverage-outputDir>target/coverage-report</coverage-outputDir>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
这里要特别注意一点,maven test命令只会跑 src/test/java下测试类,命名规则如下:
默认包含的测试类:
**/*Test.java
**/Test*.java
**/*TestCase.java
默认排除的测试类:
**/Abstract*Test.java
**/Abstract*TestCase.java
4 举个列子:
@RunWith(JMockit.class)
public class TestJApp1_1 {
@Tested
Service testedService;
@Injectable
Dependency dependency;
@Test
public void exeUnitTest() {
new Expectations() {{
dependency.findSomeData(anyString);
result = new Data("345");
}};
testedService.doSomething("...");
}
}
该测试类放在src/test/java下
public class Service {
private Dependency dependency;
public Data doSomething(String someData) {
Data data = dependency.findSomeData(someData);
System.out.println(data.getText());
return data;
}
public String fun() {
return "call original method";
}
}
public class Dependency {
public Data findSomeData(String anyString) {
System.out.println("Dependency -->"+anyString);
log(anyString);
return new Data(anyString);
}
private void log(String text){
System.out.println("Dependency private log -->"+text);
}
}
public class Data {
private String text;
public Data(String text) {
this.text = text;
}
public String getText() {
return text;
}
}
这个类放在src/main/java下。右键runas 或者maven test 都会生成测试报告,效果如下
- 大小: 78.4 KB
分享到:
相关推荐
当maven项目中从中央仓库中找到不到某些Jar包,或者想把自己开发的Jar文件引入到项目中使用。可以把Jar包上传maven中央仓库或自建的私服,但有时候上述条件不好满足或操作麻烦,可直接在本地配置Maven的POM文件就...
NULL 博文链接:https://3806850.iteye.com/blog/907863
minIO-6.0.11版本,在非maven的老项目中集成一个技术真的是很头疼的一件事,因为jar包冲突能让你浪费半天时间,所有未了大家遍历就拿去用吧!可以互相交流技术哦大家!
不习惯于maven项目开发,想使用eclipse的普通web项目。想借鉴别人的maven项目,但是自己使用的却不熟悉maven的原理等等,但是需要懂一点maven的目录架构。
maven项目里面pom文件所需的tools.java文件,百分之百管用,下载好直接复制到java安装目录下即可使用
Eclipse新建和部署maven项目,每一步都有详细的截图
使用Maven整合Kafka 包括生产者,消费者 Kafka各种配置 //1.设置参数 Properties props = new Properties(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "81.68.232.188:9092,81.68.232.188:9093,81...
本工程是java 实现tomcat自带的websocket信息交互案例,基于maven构建的。
基于elasticjob的入门maven项目 基于elasticjob的入门maven项目 基于elasticjob的入门maven项目 基于elasticjob的入门maven项目 基于elasticjob的入门maven项目 基于elasticjob的入门maven项目 基于elasticjob的入门...
maven项目构建文档maven项目构建文档maven项目构建文档
今日,将原先在eclipse上开发的Maven项目导入idea中,启动报错,项目在eclipse中启动百分百是没有问题,误以为是IDEA打开项目的动作错误,在网上查了很多资料,各种操作五花八门,尝试了遍,结果还是不行。...
sypro_maven项目,ssh_maven项目
java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一...
基于Springboot+mybatis的maven项目
maven项目eclipse导入的详细步骤。
1.使用骨架创建maven项目,此处选择:maven-archetype-quickstart 2.填入GroupId和ArtifactId 3.第一个选中maven安装的文件夹,第二个选中maven安装文件夹中的conf/settings.xml,第三个如果settings.xml中配置了...
基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis...
idea离线导入maven项目
用eclipse创建maven版的web项目
用idea 创建maven项目,整合ssm框架。 用idea 创建maven项目,整合ssm框架。